次の行で構成されるファイルがあります。
199240050;0180209199240050;0
199240241;0180209199240241;0
199240207;0180209199240207;0
199240400;0180209199240400;0
最後の数字が「0」の場合は「アクティブ」に変更し、「1」の場合は「非アクティブ」に置き換える必要があります。
試してみましたが、sed
行の途中に表示される「;0」も変わりました。
Linux bash スクリプトで使用する必要があります。
頑張ったDopeGhotiが提供するソリューションしかし、失敗します。
$ sed 's/0$/active/;s/1$/inactive/' myLines.txt
800600346 078136521 active
また、入力ファイルの形式は変更しないでください。
2番目の解決策は、次を変更せずに最後に ";active"を追加します。
$ awk -F\; 'BEGIN {OFS=";"} { if( $3 == 1 ) { print $1,$2,"inactive" } else { print $1,$2,"active" } }' myLines.txt
800010654 0295445503 0;;active
そしてジョージ・バシリウまた失敗します:
$ awk '$NF?$NF="active":$NF="inactive"' FS=';' OFS=';' myLines.txt
active
active
active
active
ベストアンサー1
ファイル名が指定されたデータに対して、次の操作を行いますinput
。
$ awk -F\; 'BEGIN {OFS=";"} { if( $3 == 1 ) { print $1,$2,"inactive" } else { print $1,$2,"active" } }' input
199240050;0180209199240050;active
199240241;0180209199240241;active
199240207;0180209199240207;active
199240400;0180209199240400;active
または以下を使用してくださいsed
。
$ sed 's/\;0$/active/;s/\;1$/inactive/' input
199240050;0180209199240050;active
199240241;0180209199240241;active
199240207;0180209199240207;active
199240400;0180209199240400;active