このファイルがあります。 awkではなくsedを使いたい
FSDFDSFSD
FDSFD
FHGDHFDHGHFGHGHGF
HHGDF
GFDGDFGFDG
GFDGFDGFDGDFGDGD
1行あたりの総文字数が30になるように、すべての奇数行を000で埋めたいと思います。
私はこの出力が欲しい
FSDFDSFSD0000000000
FDSFD
FHGDHFDHGHFGHGHGF00
HHGDF
GFDGDFGFDG000000000
GFDGFDGFDGDFGDGD
ベストアンサー1
一方通行:
sed -e :a -e 's/^.\{1,29\}$/&0/;ta' -e n file
すべての文字(.)と一致し、同じタイプ(1、29)の1〜29文字と一致します。一致に成功すると、 match &
() パターンに '0' が追加されます。一致が失敗した場合、つまり最初の文字を除く文字数が29を超えると、一致は停止し、0で埋められた30文字列を取得します。
n
最後に、次の行を読んで印刷してください。これにより、偶数行を影響なく印刷できます。
上記のスクリプトを実行します。
$ sed -e :a -e 's/^.\{1,29\}$/&0/;ta' -e n file
FSDFDSFSD000000000000000000000
FDSFD
FHGDHFDHGHFGHGHGF0000000000000
HHGDF
GFDGDFGFDG00000000000000000000
GFDGFDGFDGDFGDGD