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
感谢森迪普•!这样可行。 –