便利なLinux/Unixコマンド10選

サーバ

Linuxシェルでテキストの検索と置換を行うために便利なコマンドを紹介します。これらのコマンドを使って、ファイル内の特定のパターンを検索したり、文字列を置換したりする方法を学びましょう。

1. grep: ファイル内のパターン検索

grepコマンドは、テキストファイル内で特定のパターン(文字列や正規表現)を検索します。

grep "pattern" file.txt

このコマンドは、file.txt内で「pattern」という文字列を含む行を検索します。

2. sed: テキストの置換と加工

sedコマンドは、テキストファイル内の特定の文字列を置換したり、加工したりするのに便利です。

sed -i 's/old/new/g' file.txt

このコマンドは、file.txt内のすべての「old」を「new」に置換します。

3. awk: テキストデータの処理と抽出

awkコマンドは、テキストファイルを行単位で処理して、データの抽出や加工を行うのに役立ちます。

awk '{print $1}' file.txt

このコマンドは、file.txtの各行の1列目を抽出して表示します。

4. find + xargs: ファイルの検索と操作

findコマンドとxargsコマンドを組み合わせることで、特定の条件に一致するファイルを検索して操作することができます。

find . -type f -name "*.txt" | xargs sed -i 's/old/new/g'

この例では、カレントディレクトリ以下のすべての.txtファイル内で「old」を「new」に置換します。

5. ack/ag: プロジェクト全体の検索

ackまたはagコマンドは、大規模なソースコードプロジェクトなどで高速な検索を行うのに最適です。

ack "pattern" /path/to/project

このコマンドは、/path/to/project内で「pattern」という文字列を含むファイルを検索します。

6. grep + cut + sed: テキストの抽出と加工

複数のコマンドをパイプラインでつなげることで、より複雑なテキスト処理を行うことができます。

grep "pattern" file.txt | cut -d':' -f2 | sed 's/^ *//'

この例では、file.txt内で「pattern」という文字列を含む行を検索し、その行から2番目のフィールドを取り出して前後の空白を削除します。

7. replace: ファイル内の文字列置換

replaceコマンドは、ファイル内の特定の文字列を置換するのに使われます。

replace "old" "new" -- file.txt

このコマンドは、file.txt内のすべての「old」を「new」に置換します。

8. perl -pi -e: ファイル内の正規表現による置換

Perlの-pi -eオプションを使用して、ファイル内で正規表現に一致する文字列を置換することができます。

perl -pi -e 's/old/new/g' file.txt

このコマンドは、file.txt内のすべての「old」を「new」に置換します。

9. awk + sed: 複雑なテキスト処理

awksedを組み合わせることで、より複雑なテキスト処理を行うことができます。

awk '{print $1, $3}' file.txt | sed 's/ /,/g'

この例では、file.txtの各行から1番目と3番目のフィールドを取り出し、それらをコンマで区切った形式で表示します。

10. ag -l | xargs sed -i ‘s/old/new/g’: プロジェクト全体の置換

プロジェクト全体で特定の文字列を置換するために、agxargs、そしてsedを組み合わせることができます。

ag -l "pattern" /path/to/project | xargs sed -i 's/old/new/g'

このコマンドは、/path/to/project内で「pattern」という文字列を含むファイルを検索し、そのファイル内で「old」を「new」に置換します。


これらのLinuxコマンドを使って、さまざまなテキスト処理のニーズに対応しましょう。各コマンドのオプションやパイプラインの組み合わせを試して、作業効率を向上させる方法を見つけてください。

コメント

タイトルとURLをコピーしました