Linux:cutコマンドでデリミタ(区切り文字)のない行を非表示にする方法

スポンサーリンク

cutコマンドでデリミタ(区切り文字)のない行を非表示にする方法

cutコマンドでデリミタ(区切り文字)のない行を非表示にするには-sオプションを指定します。

 

オプションの説明

  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter
  -s, --only-delimited    do not print lines not containing delimiters
  -f, --fields=LIST       select only these fields;  also print any line
                            that contains no delimiter character, unless
                            the -s option is specified

 

以下のテキストを処理するとします。

$ cat test.txt
id,lower,upper
1,a,A
2:b:B
3:c,C
4,d,D

 

-sオプションを指定した場合

$ cut -s -d, -f2 test.txt
lower
a
C
d

 

-sオプションを指定しない場合

$ cut -d, -f2 test.txt
lower
a
2:b:B
C
d