我试图找到全2号位仅在下面的列表和反向只有那些串 - 我曾尝试下面的代码,但它也扭转了前两个数字123号也是 - 我如何得到它忽略123号,只是扭转两位数字sed命令来扭转所有两位数字的号码
echo "87 123 45 6" | sed -re 's/([0-9])([0-9])/\2\1/g'
我试图找到全2号位仅在下面的列表和反向只有那些串 - 我曾尝试下面的代码,但它也扭转了前两个数字123号也是 - 我如何得到它忽略123号,只是扭转两位数字sed命令来扭转所有两位数字的号码
echo "87 123 45 6" | sed -re 's/([0-9])([0-9])/\2\1/g'
随着GNU sed的,使用此:
sed -e 's/\<\([0-9]\)\([0-9]\)\>/\2\1/g'
的\<
表示一个字,\>
结束的开始。
尝试这样的工作 回声“87 123 45 6” | SED -re的/([0-9])([0-9])/ \ 2 \ 1/G' 这里我添加空间,这解决问题。
这不会改变第一数量,它不是由前面有一个空格。如果最后一个数字有两位数字,那么它也会失败。 –
您需要包括字界碑:
$ echo "87 123 45 6" | sed -re 's/\b([0-9])([0-9])\b/\2\1/g'
78 123 54 6
瞧!
@Jaypal当然这并不能为3位数字,如问题指定了* * –
迈克尔嗨,正是我一直在寻找 - 即时通讯新的这个和你exaplined它完美的我 - 谢谢! – frodo