シェル スクリプトを使用して、ファイルの 7 行目にあるテキストを抽出するにはどうすればよいですか。
abc
def
ghi
jkl
mno
pqr
stu
テキストを印刷する必要がありますstu
。
これについて簡単に説明できます。お願い...
あなたはそれを作ることができますawk
:
awk 'NR==7' file
行数をNR
参照します。
またsed
:
sed -n '7p' file
更新さらに良い(ピクセルビートに感謝)
sed -n '7{p;q}' file
ファイルを 1,000,000 行で埋めてみましょう。
$ for i in {1..1000000}; do echo $i>>a; done
次に、それぞれの使用時間を比較してみましょうsed
。
$ time sed -n '3p' a
3
real 0m0.098s
user 0m0.084s
sys 0m0.008s
$ time sed -n '3{p;q}' a
3
real 0m0.012s
user 0m0.000s
sys 0m0.008s
これは8倍高速です!
$ echo "0.098 / 0.012" | bc
8
awk に加えて、これを行うために構成できる他の多くのユーティリティがあります。さらにいくつかを次に示します。
head
とtail
head -n 7 file | tail -n 1
perl
perl -ne 'print if $.==7' file
ruby
は実際にはperl
ruby -ne 'print if $.==7' file
おそらくもっと短い方法がありますが、これは python にあります。
python -c "import sys; x=[l for l in sys.stdin]; sys.stdout.write(x[6])" < x