例如
文件a.txt具有以下上下文
aaa
bbb
ccc
ddd
eee
Run Code Online (Sandbox Code Playgroud)
什么是可以实现这一目标的脚本,如此
script.sh a.txt 2 4
输出:
bbb
ccc
ddd
Run Code Online (Sandbox Code Playgroud)
其中2和4是指定的行号.
你可以使用awk这个:
awk 'NR>=2 && NR<=4' file
Run Code Online (Sandbox Code Playgroud)
一般来说,
awk -v beginning=$first -v end=$last 'NR>=beginning && NR<=end' $file
Run Code Online (Sandbox Code Playgroud)
所以它的阅读问题$file,$first并$last在你的脚本.
基于doubleDown评论(谢谢!),它也可以这样做:
awk 'NR==2, NR==4' file
Run Code Online (Sandbox Code Playgroud)
更一般的:
awk -v beginning=$first -v end=$last 'NR==beginning, NR==end' $file
Run Code Online (Sandbox Code Playgroud)
sed 是一个处理这个问题的原始工具:
sed -n '2,4p' file # method 1
sed '2,4!d' file # method 2
Run Code Online (Sandbox Code Playgroud)
见sed1line.txt ; sed单行的重要资源.