我試圖使用sed從文件/root/.ssh/authorized_keys
中刪除給定行$ 2。這是我正在運行的命令,不幸的是,它並未刪除該行。任何想法我做錯了什麼?使用Sed從文本文件中刪除一行
sed -i '/$2/d' /root/.ssh/authorized_keys
我試圖使用sed從文件/root/.ssh/authorized_keys
中刪除給定行$ 2。這是我正在運行的命令,不幸的是,它並未刪除該行。任何想法我做錯了什麼?使用Sed從文本文件中刪除一行
sed -i '/$2/d' /root/.ssh/authorized_keys
您還可以使用shell
while read -r line
do
case "$line" in
*"$2"*) continue;;
*) echo "$line" ;;
esac
done </root/.ssh/authorized_keys> tempfile
mv tempfile /root/.ssh/authorized_keys
更像'fgrep -v「$ 2」authorized_keys' ...! – tripleee
對於那些冷靜下來的人,確保你知道你爲何倒下。 –
@tripleee,你可能想把這個評論作爲答案。這是我在這裏看到的最好的答案。 –
發佈非sed的答案由格倫·傑克曼的建議。 Tom Zych已經發布了基本的「正確答案」;還請注意holygeek的評論。
mv authorized_keys authorized_keys~
fgrep -v "$2" authorized_keys~ >authorized_keys
你或許可以沒有臨時文件,但我不在我的電腦上,所以我現在玩的很安全。
您是否看到錯誤訊息?你有寫入權限的文件? –