这是我的示例文件
user@linux:~$ cat file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
user@linux:~$
Run Code Online (Sandbox Code Playgroud)
我可以打印第 2-4 行 grep -A2 'e 2' file.txt
user@linux:~$ grep -A2 'e 2' file.txt
Line 2
Line 3
Line 4
user@linux:~$
Run Code Online (Sandbox Code Playgroud)
我也可以打印出行号 grep -n
user@linux:~$ grep -nA2 'e 2' file.txt
2:Line 2
3-Line 3
4-Line 4
user@linux:~$
Run Code Online (Sandbox Code Playgroud)
此外,同样的事情可以完成 sed -n 2,4p file.txt
user@linux:~$ sed -n 2,4p file.txt
Line 2
Line 3
Line 4
user@linux:~$
Run Code Online (Sandbox Code Playgroud)
但我不确定如何打印出行号 sed
是否可以用 打印出行号sed?
sim*_*lev 15
AWK:
awk 'NR==2,NR==4{print NR" "$0}' file.txt
Run Code Online (Sandbox Code Playgroud)
双sed:
sed '2,4!d;=' file.txt | sed 'N;s/\n/ /'
Run Code Online (Sandbox Code Playgroud)
格伦杰克曼的sed和粘贴:
sed '2,4!d;=' file.txt | paste -d: - -
Run Code Online (Sandbox Code Playgroud)
bart的Perl版本:
perl -ne 'print "$. $_" if 2..4' file.txt
Run Code Online (Sandbox Code Playgroud)
猫和sed:
cat -n file.txt | sed -n '2,4p'
Run Code Online (Sandbox Code Playgroud)
也看到这个答案对一个类似问题。
一点解释:
sed -n '2,4p'并sed '2,4!d;='做同样的事情:第一个只打印第二个和第四个(包括)之间的行,后者“删除”除那些行之外的每一行。
sed =打印行号,后跟换行符。请参阅手册。
cat -n在最后一个例子中可以替换为nl或grep -n ''。
| 归档时间: |
|
| 查看次数: |
19740 次 |
| 最近记录: |