我希望在目录中的多个文件上执行管道命令。
grep -r Chr18 C* | awk '$2>=1600000&&$2<=1700000' > nameDependentOnInputFile.txt
我希望运行命令的每个文件都以C开头,所以我应该能够使用*来对所有这些文件运行命令。如何根据输入文件更改输出文件名?我也看到我可以覆盖初始文件,但这是不可取的。
答案 0 :(得分:2)
因此,如果您尝试仅打印$2
介于160000和170000之间的目录中的那些文件,那么下面的内容应该有效:
for f in /path/to/files/*.cov_af ; do
bname=`basename $f`
pref=${bname%%.txt}
awk '$2 >= 160000 && $2 <= 170000' $f > /path/to/store/output/${pref}_new.txt
done