首页 > 解决方案 > Cat 不会定位和组合存在的文件

问题描述

问题

我一直在尝试使用 cat 根据文件中的部分名称组合一堆文件,但似乎无法使其正常工作。

如果我运行cat client1* > test.tsv它会毫无问题地创建文件(通过向文件添加一些文本进行测试),但使用下面的循环会创建没有意义的错误,因为文件存在。我在网上查了一下,盯着我的代码在我的屏幕上烧掉了一个完整的东西,但我不明白我做错了什么。

以下是我设置的一个基本示例,希望有人能够为我澄清:

代码

touch client1.tsv client2.tsv client3.tsv client4.tsv  client5.tsv client6.tsv

for f in $(find*.tsv); do cp $f title-$f; done

for HEADER in $(find . -mindepth 1 -maxdepth 1 -type f -name "title-*.tsv" -printf "%f\n"); do ACCOUNT=$(echo $HEADER | sed -Ee "s/^title-//" -e "s/.tsv$//");  cat "$ACCOUNT*.tsv" > "data-$ACCOUNT.tsv"; done

输出

cat: 'client4*.tsv': No such file or directory
cat: 'client5*.tsv': No such file or directory
cat: 'client6*.tsv': No such file or directory
cat: 'client1*.tsv': No such file or directory
cat: 'client2*.tsv': No such file or directory
cat: 'client3*.tsv': No such file or directory

标签: bashshellcat

解决方案


推荐阅读