1000 行のファイルと、各行に 170 フィールドのファイルがあります。特定のフィールドを grep したい。たとえば、フィールド番号 30 は空白であるかどうか....
3040 次
2 に答える
0
フィールド区切り文字が " :
"の場合
awk -F":" '{if($30=="")print $0}' file_name
上記のコマンドは、フィールド 30 が空白の行を出力します。
于 2012-08-06T09:09:09.990 に答える
0
特定のフィールド セパレーターについて言及していないので、CSV ベースの例を続けます。をgrep
使用してフィールド 30 を空白にするにはGNU grep
:
$ grep -n '^\([^,]*,\)\{29\},' test.csv
2:2,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,55,,33
基本的に、,
それぞれ末尾にコンマ ( ) の区切り文字を付けた 29 のフィールドが必要で、その直後に中間テキストのない別の区切り文字が必要です。
この-n
オプションが存在することで、すべての一致に行番号が付けられるため、各一致が入力ファイルのどこにあるかがわかります。
これは POSIX 互換の grep で動作すると思いますが、確かではありません。
于 2012-08-07T07:43:37.893 に答える