复制2行多个文件

时间:2014-03-13 14:47:58

标签: shell sed awk

在一个文件夹中,我有几个文件,其名称中包含多个参数。我应该将所有这些文件的第二行和最后一行复制到另一行。以下命令为一个文件执行作业(第一个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

我该怎么做这个任务?一般来说,如何在循环中执行命令?提前谢谢!

2 个答案:

答案 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