感谢这个链接,我知道如何将包含斜杠的变量作为模式传递给 sed:
sed "s~$var~replace~g" $file
. Juste 使用单字节字符代替 /。
多亏了这个其他链接,我还知道如何仅替换文件中第一次出现的模式(而不是在一行中):
sed "0,/$var/s/$var/replacement/" filename
或者
sed 0,/$var/{s/$var/replacement/} filename
但是如果我这样做:(
sed '0,~$var~s~$var~replacement~' filename
或其他任何以 0 开头的,然后没有斜线),我就会得到一个错误:unknown command: '0'
。
我怎么能把两者结合起来?也许通过使用 awk 或 perl 或 ... ?
我处于一种(糟糕的)情况,我有多个正确的密码并使用了 luks 插槽,但我无法分辨哪个密码属于哪个插槽
解密(在启动期间感谢 crypttab)效果很好,但我无法判断哪个插槽已被使用。为了合理化这种情况,有没有办法确定哪个luks槽被使用了呢?
从这个问题我读到:
如果您忘记了其中一个密码,那么您只能通过消除来找到它所在的位置,而如果您忘记了其中两个密码,则无法区分哪个是哪个(否则密码哈希将被破坏)。
...所以我有点害怕测试每个密码的每个插槽,即使我没有在手册页中找到任何损坏的密码哈希的参考。
注意:幸运的是,第一个 luks 插槽是已知的,所以我可以通过重置其他插槽来重新站起来。