Aさん「こnnniちは。久しぶりですね。」
Bさん「お久しぶりです。お元気でしたか?」
Aさん「こちらは変わりありません。Bさんは?」
Bさん「こちらも変わりありません。」
……
こんにちは。久しぶりですね。
こちらは変わりありません。Bさんは?
……
加工・抽出
sed '1,/class="main_text"/ d' 羅生門.html | sed '/class="bibliographical_information"/,$ d' | sed 's/[<][^>]*>//g' | sed 's/ \|(.\+)//g' | tr -s '\n' > 羅生門.txt
※羅生門.html = 青空文庫「芥川龍之介 羅生門」
コマンド名 -オプション 引数
【例】
# Hello World! と表示
echo -e "Hello\tWorld!"
【例】INPUT.txtから改行を削除し、OUTPUT.txtに結果を書き込む。
tr -d "\n" < INPUT.txt > OUTPUT.txt
【例】INPUT.txtの内容から改行を削除し、ターミナルに表示する。
tr -d "\n" < INPUT.txt
【例1】INPUT.txtの内容から改行を削除し、ターミナルに表示する。
cat INPUT.txt | tr -d "\n"
【例2】INPUTフォルダ内のファイルを一覧し、先頭行を表示していきます。
find ./INPUT -type f | xargs head -n 1
wget (url)
【例】wget http://www.aozora.gr.jp/cards/000879/files/127_15260.html
指定URLのファイルを
ダウンロードする。
cat (入力ファイル1) (入力ファイル2) ……
【例】cat P_1.txt P_2.txt
前ファイルの内容の後ろに
後ファイルの内容を加え、
新しい文字列を作る。
paste -d '\n' (入力ファイル1) (入力ファイル2) ……
【例】paste -d '\n' P1.txt P2.txt
前ファイルの行ごとに
後ファイルの行を挿入し、
新しい文字列を作る。
join (入力ファイル1) (入力ファイル2) ……
【例】join P1.txt P2.txt
前後ファイルを
指定の列をキーにして結びつけ、
新しいテーブルデータを作る。
1 太郎
2 二郎
3 三郎
1 taro
2 jiro
3 saburo
1 太郎 taro
2 二郎 jiro
3 三郎 saburo
nkf -(入力文字コード)(出力文字コード) (入力ファイル)
【例】nkf -Sw sjis.txt
ファイルの文字コードを
変換する。
(-Swをオプションにする事で、
SJISからUTF8へ変換できます)
Shift-JIS
UTF-8
sed "(行範囲 or 対象行に一致する正規表現)i (出力文字列)"
入力ファイル
sed "(行範囲 or 対象行に一致する正規表現)a (出力文字列)"
入力ファイル
【例】
#2行目の前に"章題1"を挿入
sed "2i 章題1" P_BEF.txt
#3行目以降、5行ごとに"-----"を挿入
sed "3~5a -----" P_BEF.txt
行を挿入する。
(iで行前へ、aで行後へ)
1 太郎
2 二郎
3 三郎
1 太郎
→
2 二郎
3 三郎
sed "(行範囲 or 対象行に一致する正規表現)d" 入力ファイル
【例】
#2行目から5行目を削除
sed "2,5d" P_BEF.txt
行を削除する。
1 太郎
2 二郎
3 三郎
1 太郎
3 三郎
sed
"s/(行範囲 or 対象文字列に一致する正規表現)
/(置換文字列)
/(置換文字列の出現順 ※省略時は1番目)"
入力ファイル
【例】
#"章題<数値>"を"章タイトル<数値>"に置換
sed "s/^章題(\([:digit:]+\))/章タイトル(\1)/" P_BEF.txt
行ごとに置換する。
1 太郎
2 二郎
3 三郎
1 太郎
2 花子
3 三郎
grep (対象文字列に一致する正規表現) 入力ファイル
【例】grep "^私" P.txt
正規表現で一致した文字列がある
行のみを出力する。
1 太郎
2 二郎
3 三郎
4 四郎
5 五郎
2 二郎
3 三郎
4 四郎
tr -s (重複文字) < 入力ファイル
【例】tr -s '\n' < P.txt
連続した同じ文字を1文字に
置換する。
aaa
a
head -n (行数) (入力ファイル)
【例】head -n 3 P.txt
ファイルの頭から指定行数を
出力する。
1 太郎
2 二郎
3 三郎
4 四郎
5 五郎
1 太郎
2 二郎
3 三郎
tail -n (行数) (入力ファイル)
【例】tail -n 3 P.txt
ファイルの末から指定行数を
出力する。
1 太郎
2 二郎
3 三郎
4 四郎
5 五郎
3 三郎
4 四郎
5 五郎
cut -d (区切り文字) -f (出力列) (入力ファイル)
【例】cut -d " " -f 2-3 P.txt
指定の区切り文字で区切られた
テーブルデータから
指定の列のみを出力する。
1
2
3
4
5
太郎
二郎
三郎
四郎
五郎
太郎
二郎
三郎
四郎
五郎
wc -l (入力ファイル)
【例】wc -l P.txt
指定ファイルの行数を数える。
1 太郎
2 二郎
3 三郎
4 四郎
5 五郎
5
wc -w (入力ファイル)
【例】wc -w P.txt
指定ファイルの単語数を数える。
(英語のみ)
1 taro
2 jiro
3 saburo
4 siro
5 goro
10
awk -F '(区切り文字)' '入力パターン{操作内容}……'
【例】
#1列目が"A〜"の行の3列目・2列目を出力する。
awk -F ' ' 'match($1, /A.*/) {print $3,$2}' P.txt
入力パターンと一致する行を
操作内容で書いた操作を施して
出力する。
1 太郎
2 二郎
3 三郎
4 四郎
5 五郎
太郎 01
二郎 02
花子 03
四郎 04
五郎 05