たとえば、awkを使用しているように、テキストを含む別の列からテキストを含むデータ列を減算して、一意の文字を含む3番目の列を取得する方法はありますか?
入力する
ab a
cd d
efg ef
希望の出力:
ab a b
cd d c
efg ef g
ベストアンサー1
はい、awk
適切な選択です。
awk 'NF{t=$1;gsub("["$2"]","",t);print$0,t}' input
2番目のフィールドに正規表現の文字クラスの特別な意味を持つ文字を含めることができる場合は、その文字をエスケープする必要があります。 POSIXでこの問題を解決するのにawk
時間がかかるので、GNUの代替案を公開しますawk
。
gawk 'NF{print$0,gensub("["gensub(/([\[\]^-])/,"\\\\\\1","g",$2)"]","","g",$1)}' input