📜  在 bash 中读取文件行循环 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:37:18.233000             🧑  作者: Mango

在 Bash 中读取文件行循环

在 Bash 中,读取文件并对每一行进行操作是一个常见的任务。本文将介绍如何使用 Bash 中的循环语句和内置命令来实现这个目标。

读取文件

在 Bash 中,读取文件可以使用 read 命令。下面是一个示例:

while read line; do
  echo $line
done < file.txt

这个命令逐行读取 file.txt 文件中的内容,并将每一行保存到变量 line 中。在循环内,我们可以使用 $line 来访问每一行的内容。

操作每一行

读取每一行后,我们可以对其进行各种操作。以下是一些示例:

输出行号和内容
line_num=1
while read line; do
  echo "$line_num: $line"
  ((line_num++))
done < file.txt

这个脚本将逐行读取 file.txt 文件中的内容并输出每一行的行号和内容。在循环内,我们使用 $line_num 来保存行号,并使用 $line 来保存每一行的内容。

查找特定行
while read line; do
  if [[ "$line" == *"search_term"* ]]; then
    echo "$line"
  fi
done < file.txt

这个脚本将逐行读取 file.txt 文件中的内容,并查找包含特定搜索词的行。在循环内,我们使用 [[ "$line" == *"search_term"* ]] 来测试每一行是否包含搜索词。

修改行内容
while read line; do
  modified_line="${line/search_term/replacement}"
  echo "$modified_line"
done < file.txt

这个脚本将逐行读取 file.txt 文件中的内容,并使用 Bash 的字符串替换操作来修改特定行的内容。

结论

在本文中,我们介绍了如何使用 Bash 中的循环语句和内置命令来读取文件并对每一行进行操作。无论你是需要从文本文件中提取数据还是需要修改文件的内容,这个技巧都会非常有用。