sed只修改第一次匹配 sed如何替換每一行最后一個匹配的字符串?
sed如何替換每一行最后一個匹配的字符串?=GNU/Linux)=]GNU{bash2.05b,grep 2.5,awk3.1.3,sed4.0.8}sed如何替換匹配的數(shù)字?日志文件中的一行是abc
sed如何替換每一行最后一個匹配的字符串?
=GNU/Linux)=]GNU{bash
2.05b,grep 2.5,awk
3.
1.3,sed
4.0.8}
sed如何替換匹配的數(shù)字?
日志文件中的一行是abc135hello。要在regular中找到相同的東西,請分別使用命令egrep和sed。 問題1:在數(shù)字匹配中,D用于匹配數(shù)字,但不能將135與D匹配,只能與[0-9]匹配。問題2:egrep可以用[0-9]正則化匹配135,但是sed不能[根@livedvdlog]#egrep“abcd[0-9]你好”tmp.txt文件 abcd135hello [根@livedvdlog]#egrep“你好”tmp.txt文件 [根@livedvd日志]#sed-n“/abcd[0-9]你好/p”tmp.txt文件 [根@livedvd日志]#sed-n“/abcdd您好/p”tmp.txt文件 [根@livedvd稍后,我試圖找出D在sed中可以匹配的內(nèi)容,發(fā)現(xiàn)是字母D而不是數(shù)字[根@livedvd日志]#sed-n“s/d/aaaaaaaaaa/p”tmp.txt文件 abcaaaaa135hello [根@livedvd日志];]~。
請參閱如何在sed中轉(zhuǎn)義雙引號和單引號。
sed制定最后一個字符進行替換?
為了敘述方便,假設(shè)您要匹配的字段是panda
我有一個想法:
用panda只替換一次所有行(不要在SED中使用G命令)-用文本中不存在的特殊字符串替換panda,例如@
在第一步之后,其余包含panda的行是您應(yīng)該刪除的行。
刪除后,將@@@還原到panda。
如果不清楚,請看下面的圖片-我的實驗:測試.txt文件內(nèi)容如下:
鴨子熊貓鴨子
鵝鵝鴨子熊貓
]熊熊鴨子熊貓
sed:sed“s/a。。E/[replace with string,do not write or delete]/g“文件名上方是一個字符串,如**E,還可以編寫其他正則表達式,并刪除或替換awk:awk”{gsub(/a.)。。E/,“replacement content or empty”)print}“文件名同上,替換項可以寫為空字符串,實現(xiàn)刪除功能。
如何使用sed刪除能匹配到多個字段的那幾行?
如果用sed表示,您的需求的通用版本相當于:
但是,nark正則化引擎具有此功能,并且算法只需要一次掃描即可完成。