フィルタを使用した文字列操作 2
特定のフィールドを切り出す
cut コマンドの -d
オプションで特定のフィールドを切り出す
スペース区切りの2フィールド目を切り出す
cut -d' ' -f2
カンマ区切りの1フィールド目と3フィールド目を切り出す
cut -d',' -f1,3
カンマ区切りの3フィールド目以降を切り出す
cut -d',' -f3-
タブ区切りの2フィールド目から5フィールド目を切り出す
cut -f2-5
特定の位置の文字を切り出す
cut コマンドの -c
オプションで特定の位置の文字を切り出す
1文字目の文字を切り出す。
cut -c1
1文字目と3文字目の文字を切り出す。
cut -c1,3
1-2文字目の文字を切り出す。
cut -c1-2
3文字目以降を切り出す
cut -c3-
grep コマンドを使用したフィルタリング
特定の文字列を含む行のみを表示する
dがある行を表示
“a” もしくは “z” を含む行を表示する
grep '[az]'
“f” から “l” のいずれかの文字を含む行を表示する
grep '[f-l]'
行全体が特定のパターンと一致する行を表示する
^
と、 $
でパターンを囲むことにより、指定したパターンと行全体が完全一致する行のみを表示することができる。
完全一致する行の検索は、-x
オプションを指定することでも可能
OR 条件を使用した検索
複数のファイルからパターンを含む行を検索し表示する
引数に複数ファイルを指定することも可能
特定の文字列を含まない行のみを表示する
-v
オプションを使用
行番号を付加して表示する
-n
オプションを使用
テキストファイルに行番号を付加したい場合
-n オプションと文字列 ''
A行からB行までを切り出す
-A
オプションと -B
オプションで特定の2行の行間を表示
対象となるデータが 1000000 行以内を指定
head コマンドと tail コマンドを使用したフィルタリング
head コマンドで先頭から指定した行数分を表示
先頭行から下から 3行目までを表示する
最下行から 3行を表示する
tail コマンドを使用
先頭行3行目から最下行までを表示する
その他のコマンドを使用したフィルタリング
小文字から大文字へ変換する
tr コマンドを使用
大文字から小文字へ変換する
tr コマンドへの入力
ファイル内容を処理対象としたい場合は、cat コマンドとパイプを使用して tr コマンドに変換対象となるデータを標準入力から渡す必要あり
空白で区切られた特定のフィールドを切り出す
awk '{ print $フィールド番号 }'
1フィールド目を切り出す
対象となる行を特定してフィールドを切り出す
awk '(NR == 行番号){ print $フィールド番号 }'
3行目のみを処理対象とする
1行目および3行目を処理対象とする
2行目より大きいかつ4行目以下、つまり3行目から4行目までの行を処理対象とする
空白で区切られたフィールドの順番を入れ替える
awk '{ print $フィールド番号" "$フィールド番号" "..." "$フィールド番号 }'
" " を指定したので、フィールド間がスペースで区切られている