awkに関する世界観です。UNIXコマンド(基本)やUNIXコマンド(応用)も参照のこと。grepgrepテキストの中でマッチする行だけを取り出す。awkとして検索・置換の三人衆と知られている。Qiitagrepの例grepはパイプを使ってストリームの中のパターンにマッチする行を抽出するために使うことができます。データベースで言えばフィルターのようなものです。fsこんなこともできる。"Linus"-rオプションはディレクトリ内の再帰的な検索、-nは行番号を表示、-lはファイル名のみを表示。ちなみに、正規表現を使用しない場合はfgrepで高速検索ができる。awkストリーム編集用のコマンド。ストリームの検索・置換・抽出を行うコマンド。grepは検索、sedは編集(置換・抽出など)、awkは空白やタブを想定したスクリプト処理が出来ます。findfindとlocatefindはファイルを検索する際、色んなオプションが使える。locateはオプションは貧弱だが、事前に作られたデータベースから検索するために、検索速度が速い。データベースはcronで自動で作られるが、手動で作る場合はrootユーザーになってupdatedbを実行する。更新日が最近の10日以内のファイルを探すfindの便利な使い方。更新日が最近の10日以内のファイルを見つける。場所はカレントディレクトリ「.」以下から。SOFTELメモより引用。)xargsxargsを上手く使うことで、一覧されたテキストから全てに対するコマンドを実行できる。findとともに使うことで、手作業でうんざりする作業をしなくても済む。ぺけみさおxargsコマンドを上手く使うことで、findやgrepなどの結果から、「全ての行に対するコマンド」を実行出来る。全てのファイルの内容を正規表現で置換xargsは、たとえば、findで一覧した全てのファイルに対して、sedのようなコマンドで正規表現をかけ、保存したい場合などに使える。xargsで全てのファイルを正規表現で置換する。プログラマでありたいより引用。)同様のことをWindowsで行うためには、フリーソフトのサクラエディタのGrepやGrep検索機能を使う。xyzzyなどでも同じ機能がある。parallelはコマンドを並列実行するツール。簡単な並列実行ならxargsに-Pオプションでもいける。〜なんかいろいろ〜sedsedストリーム操作の例。正規表現で検索や置換を行ったり、パターンにマッチする行だけを抜き出したい・削除したいなど、ストリームの編集を行いたい時は、sedを使う。コマンド行に変換してbashに送る、などといった荒業も可能だ。lsでjpgをjpegに置換して表示する。s/jpg/jpeg/lsで行末の拡張子を.jpgから.jpegに置換して表示する。"s/\.jpg$/.jpeg/"元の文字列と置換した文字列を並べる。\1.jpeg/"mvで名前変更をするためのコマンド列を作る。\1.jpeg/p"実際にbashで名前を変更する。Qiitasedの基本[改訂第3版]Linuxコマンドポケットリファレンスより編集して引用。viは入力されたデータをそのまま出力するためビジュアルエディタと呼ばれる。sedは入力されたデータを行単位で処理するためストリームエディタと呼ばれる。ファイルを置き換える。正規表現にマッチした部分を文字列で置き換える。s/hoge/fuga/gのように行末にオプションをつけることができる。gはその行にマッチした部分を行末まで処理する。数字を指定すればマッチした番号を対象にする。pならマッチした行だけ処理して出力する。開始行から始めて間隔行おきを対象行とする。正規表現にマッチした行をコマンド処理する。アドレスでマッチした行の次から数で指定した行までをコマンド処理するアドレスとコマンドの間に「!」をはさむと、該当する行以外をコマンド処理対象にする。sys:x:3:3:sys:/dev:/usr/sbin/nologinとする。@ITを参考に執筆・引用しました。s(置換)sedのsは文字列の置き換えを行う。ファイル名p(置換した行だけを出力)sedのpは置換した行だけを出力する。出力を抑制する-nオプションを付ける。ファイル名g(全てのパターンを置換)sedのgは各行に含まれる全てのパターンを置換する。s/sed/SED/pgこの例では、全ての「sed」を「SED」に置換した後、置換した行だけを出力する。sで対象となる行を指定(文脈依存置換)sedのsオプションでは、sの前に行番号(たとえば2,5)か/パターン/を指定することで、対象の行を制限できる。これにより、「あるパターンを含む行において、別のパターンの置換を行う」ことが可能。2,5s/GNU/gnu/pこの例では、2~5行目までの「GNU」を「gnu」に置換し、置換した行だけを出力する。/sed/s/GNU/gnu/pこの例では、「sed」というパターンが含まれる行の「GNU」を「gnu」に置換し、置換した行だけを出力する。sedと一緒にviも使おうsedはコマンドで使うと強力だが、テキストを編集する際にはviを使おう。便利で簡単にテキスト処理ができる。sedとviを制するものはLinuxを制す。awkawkawkは昔からあるUNIXのスクリプト言語で、空白やタブで区切られたテキストに対してスクリプト処理をかけることができる。特定のカラムを表示させたい時は、awkを使うと便利です。Beginnersより引用。Beginnersより引用。}'簡単なスクリプト処理も可能です。hydroculのメモを参考に執筆・引用しました。$2;}'以下のように出力される。awkなどを使うことで、何でもかんでも一行で便利かつ効率的に操作することができます。bash`(bashを動かすのに必要なライブラリが「=>」を含んだ形で、空白を区切りに三列目に表示される。exitのようにしますが、「bashだけではなくlsも動かしたい」といった時に、コマンドが必要とするライブラリを配置する必要があります。lib64のように、lddコマンドの出力を上手く使って、grepとawkでコピーしたいファイル名の一覧だけを抽出し、xargsでそれら全てに対してcpコマンドを実行することができます。(以上のコマンド入力例は[改訂第3版]Linuxコマンドポケットリファレンスより編集して引用。ファイルを詳しく検索する(ディレクトリ階層を一覧表示し、条件で検索する)。簡単な検索ならデータベースを使うlocateの方が高速。ファイルやテキストから文字列を検索する。パイプから使うことも多い。ファイルやテキストの文字を変換する。findやxargsと一緒に使うことで、簡単に全ての文字を検索・置換できる。