現在お買い物カゴには何も入っていません。
コマンドラインツールを使用したテキスト編集方法
コマンドラインでのテキスト編集: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
)で確認することをお勧めします。