2

我想在两个数字之间插入一个字符:foo bar 12 34变成foo bar 12/34.

所以我想要sed匹配两个数字之间的空格并用斜杠替换它,但我不知道该怎么做。

sed -e 's/[1-9][0-9] [1-9][0-9]/\//'到目前为止,但我知道用斜线代替数字空格。我需要在两个数字之间的行中找到空格,但只替换空格。也许我需要grep找到它,但最后我仍然需要整行打印。

有任何想法吗?

4

3 回答 3

5

微不足道awk

echo 'foo bar 12 34' | awk '{print $1,$2,$3"/"$4}'

确定要使用分隔符分隔的列,并将分隔符放在中间。

如果一行上有不同数量的字段,则使用循环标识要与下一个字段连接的字段。

于 2013-07-01T02:09:51.530 回答
1

怎么样:

sed 's|\([0-9]\) \([1-9]\)|\1\/\2|'
于 2013-07-01T02:09:03.663 回答
0

给你,我已经测试了以下正则表达式。

echo "foo bar 12 23" | sed -e 's/\(.*\)\([1-9][0-9]\)\(.\)\([1-9][0-9]\)/\1\2\/\4/'
于 2013-07-01T02:03:21.863 回答