我目前正在编写一个自动更改配置文件的脚本,具体来说,我想将“vfio vfio_iommu_type1 vfio_pci vfio_virqfd”(不带引号)放在 MODULES=() 的括号之间。我还想知道如何稍后从命令行中删除它。MODULES 位于文件 /etc/mkinitcpio.conf 中,位于第 7 行。
答案1
最好给我们提供一个 /etc/mkinitcpio.conf 文件的示例。
您可以使用以下命令更改文件,假设只有一个实例:()
sed -i 's/()/(vfio vfio_iommu_type1 vfio_pci vfio_virqfd)/g' /etc/mkinitcpio.conf
要将其改回来,只需执行相反的操作:
sed -i 's/(vfio vfio_iommu_type1 vfio_pci vfio_virqfd)/()/g' /etc/mkinitcpio.conf
假设它有多个实例,您可以执行以下操作:
sed -i '7s/MODULES=\(\)/MODULES=(vfio vfio_iommu_type1 vfio_pci vfio_virqfd)/ /etc/mkinitcpio.conf
7 是您想要更改的实例所在的行号。
答案2
答案3
替换使用:
sed -i 's/MODULES=\(\)/MODULES=(vfio vfio_iommu_type1 vfio_pci vfio_virqfd)/g' /etc/mkinitcpio.conf
并恢复:
sed -i 's/MODULES=\(vfio vfio_iommu_type1 vfio_pci vfio_virqfd\)/MODULES=()/g' /etc/mkinitcpio.conf