如何通过仅运行命令一次来在多个文件中运行该命令?

如何通过仅运行命令一次来在多个文件中运行该命令?

我想对 31 个分隔文件名 chr1.txt ... chr31.txt 运行以下命令,并且仅通过一次运行即可获得 31 个输出。

这是命令:

 cat input.txt  | sed 's/.\{5\}/& /g' > output.txt

有什么建议吗?

答案1

如果您的 shell 支持大括号扩展,您可以执行以下操作:

sed 's/.\{5\}/& /g' chr{1..31}.txt >output.txt

chr{1..31}.txt将扩展至chr1.txtchr2.txt...chr31.txt整个输出(来自所有文件)将保存到output.txt.

答案2

一个简单的循环就可以解决问题:

for((i=1;i<32;i++));do cat chr$i.txt | sed 's/.\{5\}/& /g' > output$i.txt; done

相关内容