43

了解しました。$を使用して行の特定の引数を出力するのは非常に簡単です。

$ cat file
hello world

$ awk '{print $1}' file
hello

しかし、文字2から8を印刷したい場合はどうなりますか?または3から7?それはawkで可能ですか?

4

3 に答える 3

69
awk '{print substr($0,2,6)}' file

substr() の構文は次のとおりです。

substr(string,start index,length)

于 2012-07-09T18:45:14.903 に答える
3

はい。関数を使用できsubstrます:

http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html

あなたの場合-2から8までの印刷文字の場合:

echo "hello" | awk '{ print substr( $0, 2, 6 ) }'

結果は次のとおりです。

こんにちは

于 2012-07-09T18:53:46.273 に答える
2

Perl がオプションの場合:

perl -lne 'print substr($_,1,6)' file

出力は @nims からの回答と同じです

于 2015-10-07T00:47:42.700 に答える