有人可以帮助/建议我如何使用Shell脚本删除3个JavaScript文件中的前4行和后2行代码吗?
我尝试使用以下指南:UNIX - delete specific lines,但仅适用于前4行。所有3个Javascript文件都有不同的代码行集。
set -vx
lines2del="(1,2,3,4)"
sedCmds=${lines2del//,/d;}
sedCmds=${sedCmds/(/}
sedCmds=${sedCmds/)/}
sedCmds=${sedCmds}d
sed -i "$sedCmds" file
任何输入均受到高度赞赏。谢谢
答案 0 :(得分:0)
将以下内容添加到您的lines2del
:
$(($(cat file | wc -l)-2)) // third last line
$(($(cat file | wc -l)-1)) // second last line
$(cat file | wc -l) // last line
答案 1 :(得分:0)
这可能对您有用(GNU sed):
sed -i '1,4d;N;$d;P;D' file
这将删除第1至4行,然后打印除最后两行也删除的其他所有行。
答案 2 :(得分:0)
$ seq 10 | tail -n +5 | head -n -2
5
6
7
8
$ seq 10 | awk '{p3=p2; p2=p1; p1=$0} NR>6{print p3}'
5
6
7
8
$ seq 10 | awk '{p[NR%6]=$0} NR>6{print p[(NR-2)%6]}'
5
6
7
8
$ seq 10 | awk -v b=4 -v a=2 'BEGIN{t=b+a} {p[NR%t]=$0} NR>t{print p[(NR-a)%t]}'
5
6
7
8
$ seq 10 | awk -v b=3 -v a=5 'BEGIN{t=b+a} {p[NR%t]=$0} NR>t{print p[(NR-a)%t]}'
4
5