我有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