セパレータが:
のファイルの列を読みたいと思います。perl -a:列区切りを変更するにはどうすればいいですか?
(http://www.asciitable.comによると、コロンの進表現が072であるので)私はこのようにそれを試してみました:
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
私はそれがb
を印刷したいが、それは動作しません。 perlrunで-F
で
セパレータが:
のファイルの列を読みたいと思います。perl -a:列区切りを変更するにはどうすればいいですか?
(http://www.asciitable.comによると、コロンの進表現が072であるので)私はこのようにそれを試してみました:
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
私はそれがb
を印刷したいが、それは動作しません。 perlrunで-F
で
ルック:
% echo "a.b.c" | perl -a -F. -ne 'print "$F[1]\n";'
% echo "a.b.c" | perl -a -F\\. -ne 'print "$F[1]\n";'
b
-0
は(記録を指定:値がこのようにいくつかの区切り文字は、いくつかの余分なエスケープが必要になる場合があり、正規表現として解釈されていることを
% echo "a:b:c" | perl -a -F: -ne 'print "$F[1]\n";'
b
は注意ライン)セパレータ。これらの行のいずれにも空白がありませんので-a
が使用された場合、$F[1]
は空になり
>echo a:b:c | perl -072 -nE"say"
a:
b:
c
:これは3本のラインを受け取るためにPerlの原因でした。
-F
は、入力のフィールドを指定します。これはあなたが望むものです。
perl -F: -lanE'say $F[1];'
それともが古いPerlで立ち往生している場合:
perl -F: -lane'print $F[1];'
コマンドラインオプションは、perlrunに記載されています。
ありがとう!私は '-0'が何であるのか疑問に思っています... – Frank
' -0'は*レコード区切りを設定します。(Perlの次の行と区切ることの概念) – mob
これはフィールド区切りではなくレコード区切りです。 – tripleee