我試圖找到全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