最後の行$ 7から空のフィールドを含む行を削除したいと思います。
文書:
1 1479870 5022248660 1 40001 189445122 740020
1 1911574 3015889020 1 33001 162049034 633004
1 1569783 5029193930 1 22001 133687297 522216
1 2069616 1025856960 2 25001 185608704
1 1741598 5021128160 1 44001 164870942 644027
1 1052941 5020319300 1 10001 156161802 610007
1 1686734 5020347480 1 13001 131405824 513304
1 1872263 5029089700 1 23001 185092353 723017
希望の出力:
1 1479870 5022248660 1 40001 189445122 740020
1 1911574 3015889020 1 33001 162049034 633004
1 1569783 5029193930 1 22001 133687297 522216
1 1741598 5021128160 1 44001 164870942 644027
1 1052941 5020319300 1 10001 156161802 610007
1 1686734 5020347480 1 13001 131405824 513304
1 1872263 5029089700 1 23001 185092353 723017
答え1
この試み:
awk '$7!=""' file > final_output
答え2
フィールドが一連の空白文字ではなく単一の空白文字で区切られている場合
1 2 4 5 6 7
行に7番目のフィールドがあるが3番目のフィールドがない場合は、次の操作を行います。
awk -F '[ ]' '$7 != ""' < file > final_output
[ ]
空白文字に一致する正規表現です。フィールド区切り文字は特別な意味を持つため、単一のスペースを使用しません-F ' '
(1つ以上のスペース文字シーケンスが次のように機能する基本フィールド分割操作が提供されます)。一つ区切り文字と先頭と末尾のスペースは無視されます。