使用bash脚本注释/ fstab中的行

Mik*_*e Q 1 bash

我需要一个bash脚本命令来查看/ etc/fstab并找到包含挂载名称"/ mymount"的行,并在行的开头添加一个"#"来注释掉它.

由此:

    /dev/lv_mymount /mymount  ext4    defaults        1 2
Run Code Online (Sandbox Code Playgroud)

对此(带#):

    #/dev/lv_mymount /mymount  ext4    defaults        1 2
Run Code Online (Sandbox Code Playgroud)

Joh*_*024 6

使用sed:

sed -i '/[/]mymount/ s/^/#/' /etc/fstab
Run Code Online (Sandbox Code Playgroud)

这个怎么运作:

  • -i

    就地编辑文件

  • /[/]mymount/

    仅选择包含的行 /mymount

    • s/^/#/

    对于那些选定的行,放置在行的开头^,即字符#.

使用awk:

awk '/[/]mymount/{$0="#"$0} 1' /etc/fstab >/etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab 
Run Code Online (Sandbox Code Playgroud)

这个怎么运作:

  • /[/]mymount/ {$0="#"$0}

    对于那些包含/mymount#在行的开头放置a 的行.

  • 1

    这是awk用于"打印每一行"的神秘简写.