首页 > 解决方案 > 有没有一种简单的方法来制作多个读取命令而不是手动输入每个命令?

问题描述

所以我正在开发这个程序,它将从命令行读取文件并使用 sed 命令将某些模式替换为我希望更改的内容。但是,我正在使用一个函数来读取文件的每一行,然后进入我的 assign2.sed 文件进行编辑。例如,我正在使用的一个文件有 11 行,如下所示。

我的问题是,是否有一种更简单的方法来读取文件的每一行而不是手动输入;读取第 1 行,读取第 2 行,依此类推。是否可以创建一个 for-loop/while 循环,该循环可以循环直到没有更多的行可以读取?

#!/bin/bash

for numArguments in $@; do

function readFile() {
  read line1
  read line2
  read line3
  read line4
  read line5
  read line6
  read line7
  read line8
  read line9
  read line10
  read line11
}
readFile < $numArguments

sed -r -i -f assign2.sed $numArguments

done

标签: bashloops

解决方案


是的,语法如下:

    while read VAR
    do
       #do something with line read into VAR
    done < input_file

但是,您可以这样做sed -r -i -f assign2.sed "$@",因为 sed 可以将多个文件作为输入。


推荐阅读