特定の文字が一度だけ含まれているファイルから行を削除し、その行が複数回表示されるか存在しない場合は、その行をファイルに保持したいと思います。
たとえば、
DTHGTY
FGTHDC
HYTRHD
HTCCYD
JUTDYC
ここで削除する文字は、C
コマンドが一度だけ行を削除する必要がある文字FGTHDC
です。JUTDYC
C
sed
またはを使用してこれをどのように実行できますかawk
?
ベストアンサー1
awk
フィールド区切り記号を何でも設定できます。に設定すると、C
+1だけフィールドが発生しますC
。
awk -F'C' '{print NF}' <<< "C1C2C3"
したがって、次のように言うと4
、CCC
:には3C
秒が含まれるため、4つのフィールドがあります。
C
一度だけ表示される行を削除しようとしています。これを念頭に置いて、あなたの場合はC
正確に2つのフィールドを持つ行を削除する必要があります。だからスキップしてください:
$ awk -F'C' 'NF!=2' file
DTHGTY
HYTRHD
HTCCYD