sed 印刷行番号

sed 印刷行番号

これは私のサンプルファイルです。

user@linux:~$ cat file.txt 
Line 1
Line 2
Line 3
Line 4
Line 5
user@linux:~$ 

2〜4行を印刷できます。grep -A2 'e 2' file.txt

user@linux:~$ grep -A2 'e 2' file.txt 
Line 2
Line 3
Line 4
user@linux:~$ 

旅行番号も印刷できます。grep -n

user@linux:~$ grep -nA2 'e 2' file.txt 
2:Line 2
3-Line 3
4-Line 4
user@linux:~$ 

または、次の方法で同じことを実行できます。sed -n 2,4p file.txt

user@linux:~$ sed -n 2,4p file.txt 
Line 2
Line 3
Line 4
user@linux:~$ 

しかし、行番号を出力する方法がわかりません。sed

行番号を印刷できますかsed

ベストアンサー1

AWK:

awk 'NR==2,NR==4{print NR" "$0}' file.txt

ダブルsed:

sed '2,4!d;=' file.txt | sed 'N;s/\n/ /'

グレンジャックマン~のsedそして生地:

sed '2,4!d;=' file.txt | paste -d: - -

バート~の真珠バージョン:

perl -ne 'print "$. $_" if 2..4' file.txt

そしてsed:

cat -n file.txt | sed -n '2,4p'

これも見てください回答エマルジョン。

少し説明する:

  • sed -n '2,4p'同じことを行いますsed '2,4!d'。 1 つ目は 2 番目と 4 番目(含む)の間の行だけを印刷し、後者はその行を除くすべての行を「削除」します。

  • sed =行番号の印刷その後に改行文字が続きます。。より手動

  • cat -n最後の例では、またはnlで置き換えることができますgrep -n ''

おすすめ記事