假設我有一個文本檔案,即 files.txt。在 files.txt 中,我有一個路徑串列,例如:
/home/user/qwe
/home/user/asd
/home/user/zxc
我希望能夠將一行移動到另一行,例如:
/home/user/asd
/home/user/qwe
/home/user/zxc
我曾嘗試使用這些命令來做到這一點。第一個有效。但是由于正斜杠,第二個不起作用:
sed -i "2d" /home/user/files.txt
sed -i "/^'/home/user/asd'/i '/home/user/qwe/'" /home/user/files.txt
我曾嘗試使用帶單引號的臨時變數來指示文字字串,但它仍然不起作用(實際上是使用變數來使用它)。此外,我嘗試使用任意字符來替換正斜杠,因為 sed 在某些情況下并不關心,但這次不同。我如何才能使用 sed 實作這一目標?
uj5u.com熱心網友回復:
使用 sed 的模式空間和保持空間:
sed '1{h;d}; 2{p;x}' file
輸出:
/家/用戶/asd /家/用戶/qwe /家/用戶/zxc
看: man sed
uj5u.com熱心網友回復:
你可以這樣試試
sed -i 's|/home/user/asd|/home/user/qwe|g' /home/user/files.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/398340.html
