不幸的是,你發現了通用的香草SED不支持在RHS速記重複的語法,所以用sed你必須處理每種情況:
sed 's/9\*\(.\)/\1, \1, \1, \1, \1, \1, \1, \1, \1/;s/8\*\(.\)/\1, \1, \1, \1, \1, \1, \1, \1/;s/7\*\(.\)/\1, \1, \1, \1, \1, \1, \1/;s/6\*\(.\)/\1, \1, \1, \1, \1, \1/;s/5\*\(.\)/\1, \1, \1, \1, \1/;s/4\*\(.\)/\1, \1, \1, \1/;s/4\*\(.\)/\1, \1, \1, \1/;s/3\*\(.\)/\1, \1, \1/;s/2\*\(.\)/\1, \1/;s/1\*\(.\)/\1/;'
EG。
echo "DUMMY name, 4, 6, 5*0, 34, 322552" | sed 's/9\*\(.\)/\1, \1, \1, \1, \1, \1, \1, \1, \1/;s/8\*\(.\)/\1, \1, \1, \1, \1, \1, \1, \1/;s/7\*\(.\)/\1, \1, \1, \1, \1, \1, \1/;s/6\*\(.\)/\1, \1, \1, \1, \1, \1/;s/5\*\(.\)/\1, \1, \1, \1, \1/;s/4\*\(.\)/\1, \1, \1, \1/;s/4\*\(.\)/\1, \1, \1, \1/;s/3\*\(.\)/\1, \1, \1/;s/2\*\(.\)/\1, \1/;s/1\*\(.\)/\1/;'
Output:
DUMMY name, 4, 6, 0, 0, 0, 0, 0, 34, 322552
echo "DUMMY same, 4, 6, 2*2, 34, 322552" | sed 's/9\*\(.\)/\1, \1, \1, \1, \1, \1, \1, \1, \1/;s/8\*\(.\)/\1, \1, \1, \1, \1, \1, \1, \1/;s/7\*\(.\)/\1, \1, \1, \1, \1, \1, \1/;s/6\*\(.\)/\1, \1, \1, \1, \1, \1/;s/5\*\(.\)/\1, \1, \1, \1, \1/;s/4\*\(.\)/\1, \1, \1, \1/;s/4\*\(.\)/\1, \1, \1, \1/;s/3\*\(.\)/\1, \1, \1/;s/2\*\(.\)/\1, \1/;s/1\*\(.\)/\1/;'
Output:
DUMMY same, 4, 6, 2, 2, 34, 322552
感謝。我有一種嘮叨的感覺,我錯過了一些顯而易見的東西,但是從你說的東西中可以看出它缺少了什麼! – 2014-11-07 08:54:38