よし上の特定のインデックスの文字を印刷するためのawkを使用したので、私は$使用して線の固有の引数を印刷することは非常に簡単です知っている:私はを通じて文字2を印刷したい場合はライン
$ cat file
hello world
$ awk '{print $1}' file
hello
しかし、何を8? 3〜7?それはawkで可能ですか?
よし上の特定のインデックスの文字を印刷するためのawkを使用したので、私は$使用して線の固有の引数を印刷することは非常に簡単です知っている:私はを通じて文字2を印刷したい場合はライン
$ cat file
hello world
$ awk '{print $1}' file
hello
しかし、何を8? 3〜7?それはawkで可能ですか?
awk '{print substr($0,2,6)}' file
SUBSTRの構文は()
substr(string,start index,length)
はいです。あなたのケースでは
http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html
- 印刷文字のために2から8まで:あなたはsubstr
機能を使用することができます
echo "hello" | awk '{ print substr($0, 2, 6) }'
結果は次のとおりです。
ello
Perlがオプションの場合:
perl -lne 'print substr($_,1,6)' file
出力が@nimsから答えると同じです
なぜフィールドセパレータ '-F = '\ n''必要がありますか?またはそれは? – Levon
@ Levon私はOPがフィールドではなくレコード全体の部分文字列を探したいと思っていました。 – nims
私はちょっと混乱しています。 '$ 0'はすでに現在の行全体であるので、現在の行全体の部分文字列を取っているなら、なぜ' -F'を指定しなければならないのか分かりません。 – Levon