次のtsvファイルがあります。
col1 col2
etc ok
something NULL
category1 ok
randomtext NULL
「NULL」を左のセルの内容と数字2に置き換える必要があります。次のようになります。セルの内容が文字列 "NULL"と一致する場合は、それを左側のセルの内容に置き換えて数字2を追加します。
col1 col2
etc ok
something something2
category1 ok
randomtext randomtext2
ありがとう
ベストアンサー1
そしてawk
:
awk 'BEGIN{ OFS="\t" } { if ($2=="NULL"){ $2=$1"2" } print }' file
フィールド$2
の場合、NULL
フィールドとフィールドはフィールドに$1
割り当てられます。その後、ラインを印刷します。"2"
$2
そしてsed
:
sed 's/^\([^[:blank:]]*\)\([[:blank:]]*\)NULL\([[:blank:]]*\)/\1\2\12\3/' file
3 つのグループの最初の列、次の空白、および 2 番目の列の後の (可能な) 空白をキャプチャし、最初のグループ、2 番目のグループ、 one+"2"、3 番目のグループに置き換えます。