我想在两个数字之间插入一个字符:foo bar 12 34
成为foo bar 12/34
。
所以我希望像sed
这样的东西匹配两个数字之间找到的空格,并用斜杠替换它,但我不知道该怎么做。
到目前为止,我有sed -e 's/[1-9][0-9] [1-9][0-9]/\//'
,但我知道用斜杠替换数字和的空格。我需要找到两个数字之间的行中的空格,但只能替换空格。也许我需要grep
来找到它,但我仍然需要整行才能打印出来。
有什么想法吗?
答案 0 :(得分:3)
awk
:
echo 'foo bar 12 34' | awk '{print $1,$2,$3"/"$4}'
标识要与分隔符分隔的列,并将分隔符放在其间。
如果一行中有不同数量的字段,则使用循环标识要与下一个字段连接的字段。
答案 1 :(得分:1)
怎么样:
sed 's|\([0-9]\) \([1-9]\)|\1\/\2|'
答案 2 :(得分:0)
在这里,我测试了以下正则表达式。
echo "foo bar 12 23" | sed -e 's/\(.*\)\([1-9][0-9]\)\(.\)\([1-9][0-9]\)/\1\2\/\4/'