例えば
ファイルa.txt
には次のコンテキストがあります
aaa
bbb
ccc
ddd
eee
この目標を達成できるスクリプトは何ですか?
script.sh a.txt 2 4
出力:
bbb
ccc
ddd
2 と 4 は指定された行番号です。
これに使用できますawk
:
awk 'NR>=2 && NR<=4' file
一般に、
awk -v beginning=$first -v end=$last 'NR>=beginning && NR<=end' $file
したがって、それは読み取りの問題で$file
あり$first
、$last
スクリプト内にあります。
doubleDown コメント(ありがとう!) に基づいて、次のようにすることもできます。
awk 'NR==2, NR==4' file
より一般的に:
awk -v beginning=$first -v end=$last 'NR==beginning, NR==end' $file
sed
これをうまく処理する原始的なツールです。
sed -n '2,4p' file # method 1
sed '2,4!d' file # method 2
sed1line.txtを参照してください。sed
ワンライナーのための素晴らしいリソース。
これを行う最も簡潔な方法は次のsed
とおりです。
$ sed '2,4!d' file
bbb
ccc
ddd