将sed命令应用于多个名称相似且编号不断增加的文件



我有20个文本文件,名称如下:samp_100.out,samp_2000-out,samp-300-out,…,samp_200-out。命名是一致的,编号增加了100,直到2000年。我想制作一个简短的脚本,(1(删除每个脚本的第一行,(2(将以下命令应用于每个文件:sed 's/ +/,/g' ifile.txt > ofile.csv,同时在更改为.csv扩展名时保持命名不变

我假设我需要使用for循环,但我不确定如何遍历文件名。

这可能适用于您(GNU sed和并行(:

parallel "sed '1d;s/ +/,/g' samp_{}.out > samp_{}.csv" ::: {100..2000..100}

使用GNU sed、GNU并行和大括号扩展,删除第一行,并用逗号全局替换所需文件的一个或多个空格,然后进行复制。

备选方案:

for i in {100..2000..100}
do sed '1d;s/ +/,/g' samp_${i}.out > samp_${i}.csv
done

相关内容

  • 没有找到相关文章

最新更新