ファイルの行(単語)を逆にしたい。
cat dummy
Hugo
Dumas
Camus
必要な出力は次のようになります。
Hugo oguH
Dumas samuD
Camus sumaC
おそらく awk で行うのが最も簡単ですが、perl oneliner も素晴らしいでしょう。
$ perl -pi -le '$_ .= $" . reverse' file.txt
説明(詳細perldoc perlrun
はを参照):
-p
:行ごとのモードでファイルを処理および印刷する-i
:インプレース編集を有効にする-l
:行末を自動的に処理します(chomp
一緒に使用すると暗黙的にs-p
と追加$\
されます)$"
' '
:デフォルト値として書く別の方法はスペースです$_ .= $" . reverse
$_
行に含まれる文字列に対応します(chomp
-ed行末を除く)。したがって、ここでは、単一のスペース()に.=
連結し、その後に-d文字列が続きます。スカラーコンテキストでは引数が指定されていない場合は逆になるため、明示的に指定する必要はないことに注意してください。$_
$"
reverse
reverse($_)
reverse()
$_