利用sed命令显示/etc/fstab文件的非注释行
时间: 2023-07-31 14:11:05 浏览: 71
可以使用以下命令来显示`/etc/fstab`文件的非注释行:
```
sed -n '/^[^#]/p' /etc/fstab
```
其中,`-n`选项表示只输出匹配的行,`/^[^#]/`表示匹配不以`#`开头的行,`p`表示打印匹配的行。因此,该命令会打印出`/etc/fstab`文件中所有非注释行。
相关问题
sed -ri 's/.*swap.*/#&/' /etc/fstab和sed -i '/swap/s/^/#/' /etc/fstab的区别
这两个命令都是用来修改文件/etc/fstab中的内容,实现注释掉swap分区的功能。它们的区别在于使用的正则表达式和替换方式不同。
1. `sed -ri 's/.*swap.*/#&/' /etc/fstab`命令使用了扩展正则表达式(-r选项),并且将匹配到的行的整行内容替换为以#开头的注释行。这个命令会直接修改/etc/fstab文件。
2. `sed -i '/swap/s/^/#/' /etc/fstab`命令使用了基本正则表达式,并且只将匹配到的行的开头替换为#。这个命令也会直接修改/etc/fstab文件。
所以,两个命令的区别在于正则表达式的使用方式和替换的粒度。第一个命令会替换整行内容,而第二个命令只替换行的开头部分。
ansible all -m shell -a "sed -i s/\/dev/mapper/centos-swap/\#/dev/mapper/centos-swap /etc/fstab"
这个命令会使用 Ansible 在所有远程主机上执行一个 shell 命令,将 /etc/fstab 文件中的 /dev/mapper/centos-swap 行注释掉。
具体来说,命令中的参数含义如下:
- `ansible all`:表示在 Ansible 的所有主机上执行命令。
- `-m shell`:表示使用 shell 模块,在远程主机上执行 shell 命令。
- `-a`:表示接下来的参数是要在远程主机上执行的命令。
- `"sed -i s/\/dev/mapper/centos-swap/\#/dev/mapper/centos-swap /etc/fstab"`:表示要在远程主机上执行的命令。其中,sed 命令用于编辑文件,-i 参数表示直接修改源文件,s 表示替换操作,/dev/mapper/centos-swap/ 表示被替换的字符串,\# 表示替换后的字符串(即在前面添加 # 注释掉),/etc/fstab 表示要编辑的文件路径。需要注意的是,在命令中使用了双引号,这是为了避免命令中的特殊字符被 shell 解释。
阅读全文