Unix Shell脚本从标准输入中获取多个文件(csh)

时间:2014-04-25 16:16:17

标签: shell unix csh

使用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

1 个答案:

答案 0 :(得分:0)

您可以使用$argv[]访问命令行参数。要遍历它们但跳过前两个,您可以使用此构造:

foreach file ($argv[3-])
    # do stuff here, eg
    echo $file
end

你不应该使用csh,如果你的教授已经指示你这样做,我会质疑。