如何从 bash 中的文件中删除一行?

How to remove a line from a file in bash?

我有一个名为 tmp 的文件,其中包含 4 个字符串:

dirs
f1
f2
f3

我想留在

f1
f2
f3

什么 bash 命令可以帮助我完成此任务? (只有 bash,没有 sed 或 awk。)

您可以使用:

grep -v "dirs" tmp

grep-v 参数将否定匹配,即它将从文件 tmp

中排除任何匹配 dirs 的内容

或者,如果您想要一个纯粹的 bash 解决方案:

while read -r line
do
  if ! [[ $line =~ "dirs" ]]
  then
    echo $line
  fi
done < tmp

其中一种方法是使用 tail:

tail -n 3 tmp

带 grep 的正则表达式:任一

grep 'f' tmp > name_of_output_file

grep '[^"dirs"]' tmp > name_of_output_file

为我工作