在一个文件夹中,我有几个文件,其名称中包含多个参数。我应该将所有这些文件的第二行和最后一行复制到另一行。以下命令为一个文件执行作业(第一个sed复制第二行,第二个sed与最后一行.tail命令相关,因为我需要找到最后生成的文件):
(sed -n '2p' $(ls -rt1 pa*p3.3_*.txt | tail -1) && sed -n '$p' $(ls -rt1 pa*p3.3_*.txt | tail -1)) >> f1.txt
现在参数p在例如1,1.1,1.2 ..,2.9,3的范围内。如何在shell循环中执行上述命令?我尝试使用以下脚本但不起作用:
#!/bin/bash
num=$(awk 'BEGIN{for(i=1;i<=3;i+=0.1)print i}')
for n in $num
do
(sed -n '2p' $(ls -rt1 pa*p$n_*.txt | tail -1) && sed -n '$p' $(ls -rt1 pa*p$n_*.txt | tail -1))
done
我该怎么做这个任务?一般来说,如何在循环中执行命令?提前谢谢!
答案 0 :(得分:1)
我不清楚,但复制到文件的第二行和最后一行可以通过
完成sed -n '2p;$p' ListOfYourFiles > f1.txt
对于文件列表,我们需要更多规范才能拥有高效的sed / awk / script
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed -sne '2w file3' -e '$w file3' file1 file2