現在お買い物カゴには何も入っていません。
タグ: command line
コマンドラインツールを使用したテキスト編集方法
コマンドラインでのテキスト編集:sed、awk、trの活用
コマンドラインでのテキスト編集は、大量のデータ処理や自動化スクリプトの作成において非常に有用です。ここでは、主要なツールであるsed、awk、trの使用方法を解説します。
1. sed (Stream Editor)
sedは、テキストの置換、削除、挿入などの編集操作を行うためのストリームエディタです。
基本的な置換
# 'old'を'new'に置換(最初の出現のみ) sed 's/old/new/' file.txt # 全ての出現を置換 sed 's/old/new/g' file.txt # 3行目のみを置換 sed '3s/old/new/' file.txt # 元のファイルを直接編集(GNU sed) sed -i 's/old/new/g' file.txt
行の削除
# 空行を削除 sed '/^$/d' file.txt # 特定のパターンを含む行を削除 sed '/pattern/d' file.txt
行の挿入
Vim
のインサートモードに移るコマンド1のように、i
が行前に挿入で、a
が行後に追加です2。但し、小文字です。# 2行目の後に新しい行を追加。バックスラッシュで改行 sed '2a\New line' file.txt
2. awk
awkは、テキスト処理や報告書生成に特化したプログラミング言語です。
フィールドの抽出
# 2番目と3番目のフィールドを表示 awk '{print $2, $3}' file.txt # カンマ区切りのCSVファイル(Comma-Separated Values)を処理 awk -F',' '{print $1, $3}' file.csv
条件付き処理
# 3列目が100より大きい行を表示 awk '$3 > 100' file.txt # 特定のパターンを含む行を処理 awk '/pattern/ {print $0}' file.txt
計算
# 数値の合計を計算 awk '{sum += $1} END {print sum}' file.txt
3. tr (Translate)
trは文字の置換や削除を行うシンプルなツールです。
文字の置換
# 小文字を大文字に変換 echo "hello" | tr 'a-z' 'A-Z' # スペースをタブに変換 cat file.txt | tr ' ' '\t'
文字の削除
# 数字を削除 echo "abc123" | tr -d '0-9' # 改行を削除 cat file.txt | tr -d '\n'
文字の圧縮
# 連続する重複文字を1つに圧縮 echo "hello world" | tr -s ' '
実践的な使用例
- ログファイルから特定のエラーを抽出し、回数をカウント
grep "Error" log.txt | awk '{print $4}' | sort | uniq -c
- CSVファイルの特定列を抽出し、新しいファイルに保存
awk -F',' '{print $2 "," $4}' input.csv > output.csv
- テキストファイル内の特定の単語を置換し、バックアップを作成
sed -i.bak 's/oldword/newword/g' file.txt
これらのツールを組み合わせることで、複雑なテキスト処理タスクを効率的に実行できます。各ツールの詳細なオプションや機能については、
man
コマンド(例:man sed
)で確認することをお勧めします。