簡體   English   中英

如何刪除格式為ARRAY =…的行; 用sed?

[英]How do I remove a line of the form ARRAY=…; with sed?

我正在嘗試學習sed,但是遇到了問題。 讓我解釋一下,我有一個文件名為:

code..
ARRAY=(anystring);
code..

其中anystring表示可以包含我想要的代碼,因為這只是示例。 現在,使用sed我想刪除“ ARRAY = ...;”行。

我嘗試過:

sed "/#ARRAY=.*;/d" in > out

但沒有成功,雖然:

sed "/ARRAY=[a-z]*;/d" in > out

對我來說很好。 問題在於“ ARRAY =“之后可以有所有字符(顯然;;除外)。

我怎樣才能做到這一點?

在第一個命令中刪除“#”字符。 sed正則表達式中的'#'字符沒有特殊含義。

嘗試這個:

sed '/^ARRAY=.*;/d' in >out

該行的開頭表示為^,而不是#。 如果您接受瑞士在評論中建議的領先空格,請使用

sed '/^[ \t]*ARRAY=.*;/d' in >out

sed "s/^ARRAY=.*;//g" <in >out或更好sed "/^ARRAY=.*;/d" <in >out

“ s”表示替代。 因此, s/ABC/DEF/意味着用DEF替換ABC。 “ g”表示全局,因此它將刪除所有此類行,而不僅僅是第一行。 ^表示該行必須以ARRAY開頭

暫無
暫無

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

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