Unix:Head,Tail,递归的所有文件的中间

时间:2014-06-05 09:05:53

标签: shell

要求:

文件夹中可能有多个文件。对于每个文件,我想要检索每个文件的Top10,Bottom 10和Middle 10并转储到一个文件中。

示例: 输入文件:APPLE.TXT, ORAGNE.TXT , BANANA.TXT 输出文件:Final.TXT,其中包含上面每个文件的前10,下10,中10。

Final.Txt将具有:
Apple.txt
ABC
CDE
EFG
ORANGE.TXT
DEF
GEH
IJK

谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

以下是一些可以帮助您入门的建议:

使用head获取前十行:

head -10 file

要将命令的输出附加到文件,请使用>>,例如head -10 file >> output

使用tail获取最后十行:

tail -10 file

使用sed获取中间十行。您需要首先计算行号,如下所示:

total=$(wc -l < file)
middle=$((total/2))
start=$((middle-4))
end=$((middle+5))
sed -n ${start},${end}p file

当然,您应首先检查您的文件至少有十行。