在一个文件中,有:
sd5_crypt UUID=1337 none luks,discard
我想将其更改为:
sd5_crypt UUID=1337 /dev/disk/by-label/MON_LABEL_ICI:/keyfile luks,keyscript=/lib/cryptsetup/scripts/passdev
使用 Shell 脚本。
我不知道(盲)它是 sd5、sd4 还是 sx999...我不知道 UUID。
我必须更改 1337 之后的所有内容。好吧,按照人的说法,“我删除 UUID 号码后面的所有内容 - 我不知道 - 并用/dev/dis/by-label....
我知道的替换。
我不知道哪个是好的解决方案。你能帮忙吗?
答案1
我的评论的扩展版本:
您可以使用sed
来编辑文件。一般来说,您需要:
sed 's/STRING/REPLACEMENT/g'
在您的示例中,以下代码应该适合您:
附有解释:
sed -i # the -i option allows you to read from and write to the same file
's/none luks,discard/ # the part you want to replace
\/dev\/disk\/by-label\/MON_LABEL_ICI:\/keyfile luks,keyscript=\/lib\/cryptsetup\/scripts\/passdev/g'
# the part you want to insert. Note, that the / characters
# have to be escaped with \/
input.txt # your input file
作为一行代码,无需注释即可复制粘贴:
sed -i 's/none luks,discard/\/dev\/disk\/by-label\/MON_LABEL_ICI:\/keyfile luks,keyscript=\/lib\/cryptsetup\/scripts\/passdev/g' input.txt