使用for循环或管道(都使用一个文件名),我需要弄清楚如何从标准输入接受无限制的指定文件。我尝试过正则表达式和各种通配符表单。我遇到的两个主要问题:只有第一个文件通过脚本或目录中的每个文件都通过。这是一个基本Unix课程的作业,到目前为止我的问题是过度复杂化。根据本学期剩下的时间,对我想要做的事情有一个简单的解决方法。在这里,我花了两个小时阅读数百个网站和帖子让我头晕目眩。
编辑:命令行提示符将是这样的〜/ dir / script currentWord newWord fileName1 fileName2 fileName3
#!/bin/csh
set currentWord=$1
set newWord=$2
set fileName=$3
if { grep -q $1 *$3 } then
sed -i.bak -e "s/$1/$2/g" $3
else
echo "The string is not found."
endif
#grep -q $1 $3 | sed -i.bak -e "s/$1/$2/g" $3
答案 0 :(得分:0)
您可以使用$argv[]
访问命令行参数。要遍历它们但跳过前两个,您可以使用此构造:
foreach file ($argv[3-])
# do stuff here, eg
echo $file
end
你不应该使用csh
,如果你的教授已经指示你这样做,我会质疑。