在Bash中循环浏览文件内容
通常,需要使用bash脚本从文件中读取每一行。有多种方法可以读取文件中的行。在下面的示例中,我们首先描述了如何创建示例文件,然后运行读取该示例文件的脚本。
创建一个要读取的文件
# Open vi Editor vi a_file.txt # Input the below lines Monday Tuesday Wednesday Thursday Friday Saturday Sunday # cat the file cat a_file.txt
运行上面的代码给我们以下结果-
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
使用做时
在这种方法中,我们使用do-while循环读取文件。我们在文件末尾提供文件名作为输入。首先,我们创建一个脚本并授予其执行权限。然后只有它可以读取文件并显示结果。
#!/bin/bash while read LINE do echo "$LINE" done < a_file.txt
运行上面的代码给我们以下结果-
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
用于和在
在下一个方法中,我们使用for循环以及in子句。在这里,我们将cat命令的结果(每一行)存储在一个变量中,该变量是for循环的一部分,并回显该变量。
#!/bin/bash file=a_file.txt for i in `cat $file` do echo "$i" done
运行上面的代码给我们以下结果-
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
仅回声
我们还可以仅使用echo来获取文件的内容。但是结果将以行的数组形式出现,并以单行输出的形式打印出来,以显示所有行的组合。
echo $( < a_file.txt )
运行上面的代码将为我们提供以下结果:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
用空行读取文件
如果文件中的某些行为空白,则可以使用以下代码在输出中避免它们。这使用将IFS(内部字段分隔符)设置为空字符串,以便将空行视为字段分隔符,并避免在输出中使用。假设第三行和第四行之间有空白行,则这些空白留置权将不会被打印。
#!/bin/bash while IFS = read -r LINE do echo "$LINE" done < a_file.txt
运行上面的代码给我们以下结果-
Monday Tuesday Wednesday Thursday Friday Saturday Sunday