bash - 有没有一种简单的方法来制作多个读取命令而不是手动输入每个命令?
问题描述
所以我正在开发这个程序,它将从命令行读取文件并使用 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
解决方案
是的,语法如下:
while read VAR
do
#do something with line read into VAR
done < input_file
但是,您可以这样做sed -r -i -f assign2.sed "$@"
,因为 sed 可以将多个文件作为输入。
推荐阅读
- html - 响应式网页设计无法正确调整按钮大小
- c# - 创建 RawDiskLibrary 对象时磁盘名称无效
- node.js - “无效的论点”:我错过了什么吗?
- php - 如何在 PHP 的 array_reverse() 函数中使用 echo
- javascript - 如何将此代码转换为一个函数 jquery
- javascript - 在简单的登录表单中单击按 Enter 键
- laravel - 为什么不捕获我在 Laravel 5.7 中定义的路由请求的文件 URI?
- python - 无法从网页解析指向不同海报的链接
- c - c语言中的套接字和线程分段错误
- django - 无法在 Django OneToOneField 模型中访问反向关系