UNIX TCSH:使用无法正常工作的GREP结果循环



我正在尝试执行一个简单的任务。在文本文件中格雷普列表,将其馈入foreach循环,然后对其进行操作,示例可以删除或复制文件名。

,但我似乎无法吸引Grep的结果来馈入Foreach的变量。

foreach key ( `grep -r '*' /nfs/png/disks/png_vlvpe_disk007/tvpv/prod_suite/users/clwong/Pat_Label_Remove_C0_17_17_vrevL2List/vrevL2_append.txt` ) 
rm $key
end

有什么想法?

这里的技巧是 disable set noglob

globing globing

对于以下文件列表:

dfarrell% cat files.txt
file1.txt*
file2.txt*
file3.txt*
file4.txt*

您可以使用

在每个文件上操作
dfarrell% set noglob; foreach file ( `cat files.txt` )  
foreach? unset noglob
foreach? rm -v "$file"
foreach? set noglob
foreach? end
file1.txt*
file2.txt*
file3.txt*
file4.txt*

使用unset noglob

完成时可以重新启用球

请注意,我要输入命令行,这就是为什么您会遇到foreach?提示。在文件中的shell脚本中,您不会键入它,也不会以这种方式看到它 - 它来自外壳。

最新更新