1

処理のためにファイルを perl スクリプトに渡し、複数行の perl スクリプトにヒアドキュメント構文を使用するにはどうすればよいですか? 私はそれらを試しましたが、運がありません:

cat ng.input | perl -nae <<EOF
if (@F==2) {print $F[0] . "\t". $F[1] . "\n"} else { print "\t" . $F[0] . "\n" }
EOF

cat ng.input | perl -nae - <<EOF
if (@F==2) {print $F[0] . "\t". $F[1] . "\n"} else { print "\t" . $F[0] . "\n" }
EOF
4

3 に答える 3

1

プロセス置換を使用します。

cat ng.input | perl -na <(cat <<'EOF'
if (@F==2) {print $F[0] . "\t". $F[1] . "\n"} else { print "\t" . $F[0] . "\n" }
EOF
)

また、perl スクリプトでシェル変数として展開されないように、EOFタグを一重引用符で囲みます。$F

于 2013-04-23T00:12:38.123 に答える