我正在尝试执行一个简单的任务。在文本文件中格雷普列表,将其馈入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
对于以下文件列表:
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脚本中,您不会键入它,也不会以这种方式看到它 - 它来自外壳。