我想做一個操作來截斷或重新引入字符串中的特殊字符。所以我決定使用sed進行這個操作。然而,發生規格似乎並不9後,開始工作:超出9的SED發生規範
的字符串是:
dotLessLogName -/FTTIPIFT1FT751632ADRR262521251T-2521251-01Y20120925_102339csvgz
我的sed命令:
echo "$dotLessLogName" | sed 's/\([/]\{1\}\)\([A-Z]\{2\}\)\([A-Z]\{4\}\)\([A-Z]\{2\}\)\([0-9]\{1\}\)\([A-Z]\{2\}\)\([0-9]\{6\}\)\([A-Z]\{4\}\)\([0-9]\{2\}\)\([0-9]\{7\}\)\([A-Z]\{1\}\)\([-]\{1\}\)\([0-9]\{7\}\)\([-]\{1\}\)\([0-9]\{2\}\)\([A-Z]\{1\}\)\([0-9]\{8\}\)\([_]\{1\}\)\([0-9]\{6\}\)\([a-z]\{3\}\)\([a-z]\{2\}\)/\2,,\3,,\4\5,,\6\7\8\9,,\10,,\11,,\12,,\13,,\14,,\15,,\16,,\17,,\18,,\19,,\20,,\21/'
由於您可以看到,我正在嘗試引入,,(以CSV文件分開列表字段)
但是,輸出是:
FT,,TIPI,,FT1,,FT751632ADRR26,,/0,,/1,,/2,,/3,,/4,,/5,,/6,,/7,,/8,,/9,,FT0,,FT1
它似乎能夠正常工作的第一個9個實例,但在此之後它會發瘋!
請幫助我們嗎?
-Naga
對此使用awk或perl。 – anubhava