私はしばらくLinuxユーザーでしたが、ほとんどの一般的なコマンドラインユーティリティについてかなり理解しています。ただし、プログラミングに関連して頻繁に現れるものは、grep
、awk
、およびsed
です。
Grepを使用した唯一のことは、ログファイル内のファイルを検索するためにデータをパイプすること、ps
の出力などです。awk
やsed
をまったく使用していません。これらのユーティリティに役立つチュートリアルはありますか?
AWKは特に表形式のデータに適し、他の選択肢よりも学習曲線が低くなります。
info sed
、info grep
およびinfo awk
またはinfo gawk
O'Reilly sed and awk の本は、er sedとawkに最適です。
私はsed
— sedの確定ガイド —についてのチュートリアルを含む本を書きました。 sed
、およびgrep
、tr
、head
、tail
などの関連コマンドを完全にカバーしています。また、他の場所で見たよりもはるかに優れた正規表現も完全にカバーしています。
正規表現をしっかりと理解することは非常に重要であると私は他の人に同意します。また、sed
は単純なタスクに最適であり、複雑なスクリプトはすぐに不明瞭になることに同意します。
awk
は時代遅れであり、その逆です。これは多くのUNIXのもの(例:vi
)のようで、学習曲線がありますが、それだけの価値があります。
awk
の代わりにgrep
を使用するという提案には同意しません。私の経験では意味がありません。 grep
は素晴らしくてシンプルです。
O'Riellyによって発行された正規表現クックブックは、それらを使用する任意の言語でどこにでも行くのに十分でしょう。
この本の著者はカーニハンとパイクで、タイトルは「The Unix Programming Environment」のようなものです。
私が実際に学んだ本は、「バークレーUnix入門」と呼ばれていました。
これら3つ(grep、sedおよびawk)から1つを学習する場合は、 awk/gawk。 を学習するだけです。 awkはgrepおよびsedの機能を実行できます。つまり、正規表現を使用してテキストを検索/置換できます。また、プログラミング言語でもあるため、さらに多くの機能を実行できます。 gawk/awkの裏側を学ぶ場合、grep/sed/wc/cutなどを使用する必要はありません。1つのツールでそれを実行できます。
私の意見では、awkは多かれ少なかれ時代遅れです(ただし、他の人はこの意見を強く主張します)、今日私が知っているほとんどの人は代わりにPerlなどのスクリプト言語を使用するか、今日python高度なテキスト操作に頻繁に使用します) 。sedは、より単純なテキスト操作タスクに最適です。私はいつもそれを使用しています。主に、sedの1行のようなものを http://sed.sourceforge.net/sed1line.txt =。grepについて:まあ、基本的には正規表現(sedにも必要)をしっかりと理解したいのですが、ここではtexinfoのマニュアルを使用しました。