2017-06-11 63 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

感谢赛勒斯,它适用于此,但对不起,我没有提到。文件中还有其他字符串。并且它会影响其他带有删除它们的空格的字符串。它应该匹配这个特定字符串的模式。 – 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