簡體   English   中英

使用Sed從文本文件中刪除行

[英]Using Sed To Remove A Line From Text File

我試圖使用sed從文件/root/.ssh/authorized_keys刪除給定的行$ 2。 不幸的是,這是我正在運行的命令,它沒有刪除該行。 知道我在做什么錯嗎?

 sed -i '/$2/d' /root/.ssh/authorized_keys

$2不會被單引號內的值替換。 應該使用雙引號。

根據Glenn Jackman的建議張貼未回答的答案。 Tom Zych已經發布了基本的“正確答案”。 還請注意holygeek的評論。

mv authorized_keys authorized_keys~
fgrep -v "$2" authorized_keys~ >authorized_keys

您可能沒有臨時文件就可以通過,但我不在電腦旁,所以我現在很安全地播放它。

您也可以使用外殼

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM