如何使用标签

时间:2016-05-15 21:46:07

标签: regex bash

我有以下字符串:

'1   NXA-PAC-1100W-B      AC    1080.00     90.00     ok'

我正在尝试使用sed将单词之间的空格转换为单个标签,但输出中的间距似乎不相等。我在这里做错了什么?

命令

echo '1   NXA-PAC-1100W-B      AC    1080.00     90.00     ok' | sed 's/\s\s\+/\t/g'

结果

'1       NXA-PAC-1100W-B AC      1080.00 90.00   ok'

1 个答案:

答案 0 :(得分:4)

+表示“一个或多个”,因此在您的示例中,您指定一个空格加一个或多个空格,因此指定两个或多个空格。你只想要

echo '1   NXA-PAC-1100W-B      AC    1080.00     90.00     ok' | sed 's/\s\+/\t/g'

或者更详细但更多的posix-y

echo '1   NXA-PAC-1100W-B      AC    1080.00     90.00     ok' | sed 's/[[:space:]]\+/\t/g'

关于标签如何在你的陈述中工作“输出中的间距似乎不相等”,可能存在一些误解。但是我没有足够的信息可以肯定地知道,如果没有,我不想侮辱你。