2017-06-11 4 views
0

ファイル内の特定の文字列の22番目と23番目のスペースを削除するにはどうすればよいですか?sedを使用して文字列内の二重スペースを削除する方法

以下の例と予期される結果。

XXXSA3FFESS3052599004 L + 

期待される結果は次のようになります。

XXXS3DFFESS3052599004L + 

私のコードは次のように不正確なseemd。お知らせ下さい。

sed 's/[A-Z0-9] //g' $file 

本当にありがとうございます。私はコードを正確にはわかりません。しかし、私の基本的な理解は、sedがこれを行うことができるということです。

+0

[編集ヘルプ](http://stackoverflow.com/editing-help)をご覧ください。 – Cyrus

+0

あなたはそのコードがどうすると思いますか? – 123

答えて

2
echo 'XXXSA3FFESS3052599004 L +' | sed 's/ *//' 

出力:

 
XXXSA3FFESS3052599004L + 

参照:The Stack Overflow Regular Expressions FAQ

+0

cyrusに感謝していますが、これは問題ありませんが、申し訳ありませんが、私は言及していません。ファイル内に他の文字列があることを示します。スペースも削除された他の文字列にも影響します。この特定の文字列のパターンと一致する必要があります。 – Neo

+1

これを試してください: 'sed -r 's/^(。{21})+(。*)/ \ 1 \ 2 /'' – Cyrus

+1

@Cyrusは '(。*)'や '\ 2'を必要としません。 – 123

3

またはこのような:

echo 'XXXSA3FFESS3052599004 L +' | sed 's/.//22;s/.//22' 
1

あなたのスペースが固定位置にある場合、多分それはなるだろうもっと意識して使用するcut

echo 'XXXSA3FFESS3052599004 L +' | cut -c1-21,24- 

または

echo 'XXXSA3FFESS3052599004 L +' | cut --complement -c22,23 
+0

ありがとう@libormはあなたのコメントを感謝します。 – Neo

関連する問題