-1
刪除字符串模式文件包含字符串像以下:TCL:grep的,正則表達式從文件
str1.str2.
str1.str2.str3.
str1.str2.str3.1.
str1.str2.str3.1.p
當行解析文件中的行,如果$str = "str1.str2."
然後刪除所有字符串除了str1.str2.str3.
的,我用這個:
exec sh -c "grep $str file |grep -v $str[A-Za-z_0-9]\+\.[A-Za-z_0-9] |grep -v ^$str.$ > dest_file"
但是這一個我不能使用「無效的命令[A-ZA-z_0-9] !!
有什麼不對本TCLç ommand
回想一下,Tcl的命令替換語法是帶有方括號的[[command]]。由於grep管道是雙引號字符串,因此Tcl將嘗試對字符串執行命令和變量替換。您需要轉義'[' - 參見http://www.tcl.tk/man/tcl8.6/TclCmd/Tcl.htm –
您也有與您的其他問題相同的問題。任何你想傳遞給shell的反斜槓必須加倍。傳遞給grep的'''錨點應該受到tcl和shell的保護。 –