sedスクリプトは列を15文字に制限します。

sedスクリプトは列を15文字に制限します。

私の正規表現fooでこの問題を解決しようとしましたが、うまくいきませんでした。

ファイル形式を指定するには sed スクリプトが必要です。

844388240 920009 XXXXXXXXXX YYYYYYYYYYYYYYYYYYYYYYY
800450220 910003 AAAAAAAAAAAAAAAAAA BBBBB
736458376 947883 HHHH GGGGG
800450220 910003 AAAAAAAAAAAAAAAAAA YYYYYYYYYYYYYYYYYYYYYYY

9桁(スペース)6桁(スペース)最大15文字(スペース)最大15文字

次に続く:

844388240 920009 XXXXXXXXXX YYYYYYYYYYYYYYY
800450220 910003 AAAAAAAAAAAAAAA BBBBB
736458376 947883 HHHH GGGGG
800450220 910003 AAAAAAAAAAAAAAA YYYYYYYYYYYYYYY

3番目と4番目の列はどちらも15文字に切り捨てられますが、短い値は影響を受けずに渡されます。

ベストアンサー1

1つの方法は次のとおりですsed

sed 's/\([^ ]\{15\}\)[^ ]*/\1/g'

同じことperl:

perl -lpe 's/\S{15}\K\S*//g'

そしてawk

awk '{ for(i=1; i<=NF; i++) $i=substr($i, 0, 15)} 1'

そしてvim

:%s/\v\S{15}\zs\S*//g

そしてcut

tr ' ' '\n' <file.txt | cut -b1-15 | paste -d ' ' - - - -

おすすめ記事