tsvファイルの特定のセルの内容を別のセルの編集内容に置き換えます。

tsvファイルの特定のセルの内容を別のセルの編集内容に置き換えます。

次の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 番目のグループに置き換えます。

おすすめ記事