Bash循环产生空文件

时间:2018-12-04 16:28:55

标签: bash loops

我正在尝试运行以下循环,但不幸的是,它创建了空文件。

 for f in *.tex; do cut -d "&" -s -f1,2,4 $f | sed "s/$/\\\\\\\\/g" | sed "s/Reg. year/\$year/g" | sed "s/=\([0-9]\{4\}\)/^\{\1\}\$/g" | sed "/Counterfactual/d" | sed "/Delta/d" | sed "/{2014}/d" | sed "/^\s*&\s*\&/d" > $f; done;

当我在单个文件上运行命令时(用filename.ext替换$ f),它运行良好。

1 个答案:

答案 0 :(得分:0)

整个循环过程都可以进行,您可以在执行完之后将所有命令放在尖括号中

{ cut ... | sed ... | ... }

或者您可以使用xargs:

find ./ -type f -name "*.tex" -print0 | xargs -0 cut -d "&" -s -f1,2,4 | sed ... | ...