hajichan.net technical version
トップページ >> unixコマンドメモ(テキスト処理)

unixコマンドメモ

便利なコマンド使用例、使えそうなコマンド、ワンライナーなどなど・・・忘れない程度に記載してみました。どのunixプラットホームにも使用できると思います(多分・・・)。

テキスト処理

awkやsedコマンドの使用方法を覚えると作業効率がグッと向上します。最初は構文が長ったらしくて覚えづらいと思いますが、慣れると手放せないツールの一つです。

awkコマンド関連

ユーザuser1のプロセスを一度にkill

% ps -aux | awk '/^user1/{print $2}' | xargs kill -9

9カラム目にwordがある行を表示

% awk '$9 ~ /word/ {print $0}' file

最大値を検索

% cat text | awk '{if ($3 > max){ max = $3;l = NR;}} END {print max; print l}'

カラムの長さチェック

% awk -F, 'length($3) == 3 {print $0}' text

3MB以上のメールボックスを検索

% ls -al /var/mail | awk '$5 > 3000000 {print $0}'

awkで足算

% du -k a* | awk '{s += $1} END {print "total is",s}'
% ls -l | sort +4 -rn | head -1000 | awk '{s += $5} END {print "total is",s}'
% ls -l | sort +4 -rn | sed -n '500,1500p'| awk '{s += $5} END {print "total is",s}'

sedコマンド関連

置換

% sed -e 's/foo/bar/g' myfile.txt
% sed -e '1,10s/enchantment/entrapment/g' myfile2.txt

指定行間表示

% sed -n '42,48p' access_log
% sed -n '42,$p' access_log   // 42行目から最後

行番号付表示

% sed -n -e '=;p' access_log

行頭がuserの行を削除

% sed 's/^user//g' text > text.tmp

置換 3,4カラムを入れ替え

% sed 's/3,\(.*\),\(.*\),\(.*\),\(.*\)/3,\1,\2,\4,\3/g' text   // \Nはメモリ変数

文末の空白を削除

% sed 's/ *$//g' file

viコマンド関連

文字列を末尾に挿入

:%s/$/<string>/g

空白をタブに変換

:%s/^  */       /g

カーソル以降を削除

dG

expand/unexpandコマンド関連

タブを空白に変換

% expand file > hoge

2つ以上の空白をタブに変換

% unexpand -a file > hoge

trコマンド関連

windows/unixの改行変換

% tr -d "\15" <text >text1

小文字から大文字に変換

% tr '[a-z]' '[A-Z]' < hoge

大文字から小文字に変換

% tr '[A-Z]' '[a-z]' < hoge
ページのトップへ戻る