\r\n\r\n
Linuxのrevコマンドは、テキスト文字列を反転させるコマンドです。このコマンドは、供給されたテキストとファイルの両方に対して操作することができ、一見単純に見えます。しかし、多くのコマンドラインユーティリティと同様に、他のコマンドと組み合わせて使用することでその真価が発揮されます。
revコマンドは、一見すると少し奇妙に見える、Linuxのシンプルなユーティリティの1つである。その機能はただ一つ、文字列を反転させることです。クイックヘルプの表示(-h)とバージョン番号の表示(-V)を除いて、コマンドラインオプションは受け付けません。
では、文字列を反転させるレヴューは、これで終わりですか?変化やオプションはない?まあ、そうですね、違いますね。たしかに整列しないが、いや、それだけではない。このチュートリアルでは、それらを組み合わせて強力な操作を行う方法を紹介します。
revは、tacやyesのようなファシリテーターとして機能するコマンド群の一つであり、より複雑なコマンドシーケンスでrevをビルディングブロックとして使用するときにその真価を発揮する。他のコマンドとの併用でより効果的に使えることがわかると、その便利さが理解しやすくなります。
コマンドラインから他の引数なしで使用すると、rev は入力された任意の入力を受け取り、それを反転して端末ウィンドウに表示します。Ctrl+Cキーを押して終了するまで、この動作を続けます。
rev文字列を入力してEnterキーを押すと、回文を入力しない限り、REVはその文字列を逆に印刷します。
テキストはechoを使ってレヴにパイプすることができます。
echo one two three | revまた、revを使うと、テキストファイル全体の内容を一行ずつ反転させることができます。この例では、ファイル名のリストを含むファイルを用意しています。ファイル名は "file-list.txt "です。
rev filelist.txt各行はファイルから読み込まれ、反転された後、端末ウィンドウに出力されます。
以下は、revを2回呼び出す入力パイプラインの例である。
このコマンドは、文字列から最後の文字を削除します。このコマンドは、句読点を削除するのに役立つかもしれません。
echo 'Remove punctuation.' | rev | cut -c 2- | rev少し分解してみましょう。
反転した文字列の最初の文字を削除しているので、元の文字列の最後の文字も削除しています。確かにsedやawkでもできますが、この方がずっとシンプルな構文です。
同様の手法で、行の最後の単語を返すことができる。
このコマンドは、前のコマンドと似ています:revは再び2回使用されます。違いは、テキストの一部を選択するためにcutコマンドを使用する方法であることです。
echo 'Separate the last word' | rev | cut -d' ' -f1 | rev注文の内訳は次のとおりです。
逆文字列の最初の単語を抽出したため、元の文字列の最後の単語を削除しています。文の最後の単語は "word "であり、それをプリントアウトしてくれている。
逆カンマで囲まれたファイル名のリストを含むファイルがあり、ファイル名から逆カンマを削除したいとします。
資料を見てみましょう。
less filelist.txtドキュメントの内容を短時間で見せてくれる。
各行の末尾にある句読点を削除するには、revとcutを2回ずつ使った次のコマンドを使います。
rev filelist.txt | cut -c 2- | rev | cut -c 2-は、コンマを反転させないファイル名のリストです。
コマンドは以下のとおりです。
次のコマンドは、カレントディレクトリにあるすべてのファイル拡張子をソートしたリストを返します。
ls | rev | cut -d'.' -f1 | rev | sort | uniqやり方は簡単です。
最後に、uniqコマンドに-c(カウント)コマンドラインオプションを追加します。
ls | rev | cut -d'.' -f1 | rev | sort | uniq -cこれで、カレントディレクトリにあるさまざまなファイルタイプのリストが、各ファイルタイプごとにカウントされ、ソートされて表示されます。
なかなかいい線いってますね〜。
前進するためには後退しなければならないこともありますし、チームの一員であれば、たいてい最も速く前進することができます。
revをgotoコマンドのライブラリに追加すれば、すぐに他の複雑なコマンドシーケンスを簡略化するために使うことができます。