给定文本文件a.txt
,如何从文件中剪切头部或尾部?
例如,删除前10行或后10行。
答案 0 :(得分:2)
要省略文件开头的行,您只需使用tail
即可。例如,给定文件a.txt
:
$ cat > a.txt
one
two
three
four
five
^D
...您可以从第三行开始,省略前两行,方法是为+
参数传递一个以-n
为前缀的数字:
$ tail -n +3 a.txt
three
four
five
(或者简称tail +3 a.txt
。)
要省略文件末尾的行,您可以使用head
执行相同操作,但前提是您拥有GNU coreutils版本(例如,Mac OS X附带的BSD版本不会工作)。要省略文件的最后两行,请为-n
参数传递一个负数:
$ head -n -2 a.txt
one
two
three
如果您的系统上没有head
的GNU版本(并且您无法安装它),则必须使用其他方法,例如@ruifeng提供的方法。
答案 1 :(得分:2)
列出文件的最后10行以外的所有行:
head -n -10 file
列出文件的前10行以外的所有行:
tail -n +10 file
答案 2 :(得分:1)
要剪掉前10行,你可以使用其中任何一个
awk 'NR>10' file
sed '1,10d' file
sed -n '11,$p' file
要剪切最后10行,您可以使用
tac file | sed '1,10d' | tac
或使用head
head -n -10 file
答案 3 :(得分:0)
cat a.txt | sed '1,10d' | sed -n -e :a -e '1, 10!{P;N;D;};N;ba'
答案 4 :(得分:0)
IFS=$'\n';array=( $(cat file) )
for((i=0;i<=${#array[@]}-10;i++)) ; do echo "${array[i]}"; done