0

シェル スクリプトを使用して、ファイルの 7 行目にあるテキストを抽出するにはどうすればよいですか。

abc
def
ghi
jkl
mno
pqr
stu

テキストを印刷する必要がありますstu

これについて簡単に説明できます。お願い...

4

2 に答える 2

3

あなたはそれを作ることができますawk

awk 'NR==7' file

行数をNR参照します。

またsed:

sed -n '7p' file

更新さらに良い(ピクセルビートに感謝

sed -n '7{p;q}' file

2 番目のオプションがどの程度優れているかをテストします。

ファイルを 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
于 2013-06-25T12:09:43.737 に答える
0

awk に加えて、これを行うために構成できる他の多くのユーティリティがあります。さらにいくつかを次に示します。

headtail

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
于 2013-06-25T12:12:17.577 に答える