0
我想分配一個變量,我從grep和awk中獲得一個值。像下面的東西。任何人都可以幫助我正確的語法?在csh中的grep和變量賦值
下面就是我試圖得到一個文件的完整路徑的片段:
set name='egrep -i "vars\(design\)" foo.tcl' | 'awk '{print $3}''
set dir = $cwd
set fulldir = $dir/$name
我想分配一個變量,我從grep和awk中獲得一個值。像下面的東西。任何人都可以幫助我正確的語法?在csh中的grep和變量賦值
下面就是我試圖得到一個文件的完整路徑的片段:
set name='egrep -i "vars\(design\)" foo.tcl' | 'awk '{print $3}''
set dir = $cwd
set fulldir = $dir/$name
你需要使用反引號擴展命令,而不是單引號。此外,它看起來像你已經添加了一大堆隨機'
?
這應該工作:
set name = `egrep -i "vars\(design\)" foo.tcl | awk '{print $3}'`
話雖這麼說,你真的不 「需要」 用在這裏grep
,你只能使用AWK:
set name = `awk '/vars\(design\)/{print $3}' IGNORECASE=1 foo.tcl`
的部分//
之間選擇行(就像grep一樣)。
您也可以考慮加上引號其他兩個set
命令:
set dir = "$cwd"
set fulldir = "$dir/$name"
這是不太可能發生在這裏,但不包括引號,你會在一些問題上運行,如果$dir
或$name
包含空格或其他特殊的外殼字符。總是添加它們以防止問題出現是個好主意。
試''名='的awk '/瓦爾\(設計\)/ {打印$ 3}' IGNORECASE = 1個foo.tcl''' – Sundeep
感謝森迪普•!這樣可行。 –