LPIC/101/GNU_UNIXコマンド/テキスト処理

Last-modified: 2007-01-13 (土) 21:27:55

cat file

-n

tac file

nl file

=「cat -n」

od [option] file

-t ctype ascii
-t otype odd(8進数)
-t xtype hex(16進数)= hexdump

head [option] file

-<num> -n <num>頭からnum行

tail [option] file

-<num> -n <num>末尾からnum行
-f --followファイル末尾に追加された行をリアルタイム表示

cut [option] file

-d<word>wordを区切り文字に指定
-f <field>フィールド指定

join [option] file1 file2

=>paste

-j <field>フィールド指定
-j1 <field1> -j2 <field2>ファイル毎にフィールド指定

paste [option] file1 file2

-d<word>連結する区切り文字指定

tr [option] mojiA mojiB

[:lower:]小文字a-z
[:upper:]大文字A-Z
  • tr -d [:upper:] < hoge hogeファイルの中身で大文字を削除する

sort

-r降順ソート
-n数字を数値としてソート
-b行頭の空白は無視
-f大文字小文字無視

uniq

-ddouble,重複行のみ表示
-uunique,重複しない行のみ出力

split

-<行数>行ごとに分割(デフォルトは-1000)

pr

fmt

expand

【解説】
テキスト・ファイル内のタブをスペースに変換するためには、expand コマンドを利用します。逆に、スペースをタブに変換するためには unexpand コマンドを利用します。例えば、テキスト・ファイル「file.txt」に 2行が記述されているとします。

1 A alpha
2 B beta

ここで、「1」と「A」、「A」と「alpha」の間には半角 8文字分のタブが挿入されています。2行目も同じです。このタブを同じ文字数分(ここでは 8文字分)のスペースに変換するためには次のように expand コマンドを実行します。

$ expand file.txt

これにより、ファイル「file.txt」内のタブが 8文字分のスペースに置換されます。これを 1文字分のスペースに置換する場合は、次のように expand コマンドを実行します。

$ expand -t1 file.txt

【問題】LPIC Level 1
テキストファイル中にタブをスペースに変換するためのコマンドを選択しなさい。

=>unexpand

unexpand

wc

-lline,行数を表示
-cchar,文字数を表示
-wword,単語数を表示