Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【シェルスクリプト】cutコマンドについて

(元記事 2012/01/01)

 

cutコマンド

$ cut [option] [filename]


オプション

 

-b バイトで切り出す
# hoge.datの10バイト目から30バイト目まで切り出す
$ cut -b10-30 hoge.dat

# hoge.datの40バイト目までを切り出す
$ cut -b-40 hoge.dat

# hoge.datの5バイト目からを切り出す
$ cut -b5- hoge.dat

 


-c 文字数分だけ切り出す
基本的には「bオプション」と使い方は同じ。
Mac OS X ではデフォルトで日本語文字を1文字として認識するみたい・・・(少なくとも自分の環境では)

# hoge.datの10文字目から30文字目まで切り出す
$ cut -c10-30 hoge.dat

 

-f フィールドで切り出す

デフォルトのフィールド区切り文字はTAB
その他の文字の場合は、別途「-dオプション」で設定する必要がある

# 区切り文字は今回は半角スペース
$ cat test.dat
0 0.00000 -2475.19838 0.00000
1 0.00763 0.56690 -0.07944
2 0.01526 0.59430 -0.04595

# 区切り文字として半角スペースを指定している
$ cut -d " " -f 1,2 test.dat
0 0.00000
1 0.00763
2 0.01526

 

最後の cut -f と同じような動きをするものに awkコマンドがある。
そっちはさらに色々とできる優れもの


またcutを使って次のようなこともできる。

 

FILE=20110101_data.dat
echo $FILE | cut -c-8
これでファイルネームの頭の部分だけ切り取ることもできる(何文字が必要かわかってる場合は)