shell的用sed替換的問題,sed如何將一個變數替換另一個變數

時間 2021-08-11 18:10:17

1樓:多多來看看

1.s/.*(time.

*) ms/\1/,我想你不瞭解的主要是\1這個吧,我舉個例子,s/regexp/\1/,這句的意思就是用regexp中的第1個子表示式的內容來替換符合表示式regexp的內容。放在你這個例子中就是,s/.*(time.

*) ms/\1/,第1個正則中(time.*)是子表示式,第二個中的\1是指將滿足.*(time.

*) ms的內容替換為第1個子表示式(time.*),所以輸出為time=xx

2.s/.*time=//,要明白sed中如何替換文字的,s/regexp1/replacement/,是用replacement來替換regexp1表示式所匹配的內容,在你這個例子中要替換的表示式是/.

*time=/,替換的內容為空,//,所以實際的意思就是將/.*time=/匹配的內容刪除,輸出為xx ms

3.[0-9.]的意思是匹配數字0-9或.,+的意思是重複前一個匹配1次以上,整個的意思就是匹配連續的數字或點號

2樓:福星高照的大花

正規表示式寫得有點問題,第二個是因為沒有匹配的結果,在這種情況下sed預設列印出所有輸入。你加個 -n 選項就看不到輸出了。

之所以不能匹配,問題出在中間 \([^\(<\/span>\)]*\) 這部分。這個表示 非 <, /, s, p, a, n, > 這些字元,即中間不能出現這些字元中的任意一個,而非看作一個整體。

其實,中間只需要判斷 非 < 就行了,我改一下:

echo "abc5678"|sed 's/.*\([^<]*\)<\/span>.*/\1/'

這樣應該就可以了。

3樓:匿名使用者

sed "s#\/#\\\/#g" temp_scrtxt.txt

試試看如果還不行 你看看eval命令

sed如何將一個變數替換另一個變數

shell指令碼sed命令如何使用變數替換掉包含指定字串的整行

4樓:匿名使用者

#先將包含指定字串的整行列印到變數tmptmp=$(sed -n '/$/p' 文字名)#然後將文字中這一整行字串替換為你想要修改的字串sed -i 's/$/$/g' 文字名

5樓:匿名使用者

sed "s/zip/$zip/g" file

sed雙引號可以識別變數

linux 下用shell sed替換文字中的字串

6樓:匿名使用者

sed 'n;s/hour\n/hour/' tt.txt

7樓:心想卻不能

sed 's/hour\\n/hour/' tt.txt

在前面\n加個轉義字元\就可以了,這樣比較好理解

8樓:歐洲竹子

sed是行編輯器,用這個工具非常困難。可以參考以下指令碼:

#!/bin/bash

while read line

doif echo $line | grep 'hour$' >/dev/null; then

echo $line | tr -d '\n'

else

echo $line

fidone < $1

1,將上面指令碼儲存為****.sh

2,chmod 755 ****.sh

3,./****.sh file

shell指令碼中的,shell指令碼中的 是什麼意思?謝謝!

喻逸 shell中沒有這樣的用法,是makefile中的用法,以下總結了makefile裡面的常用變數 不包含副檔名的目標檔名稱。所有的依賴檔案,以空格分開,並以出現的先後為序,可能包含重複的依賴檔案。第一個依賴檔案的名稱。所有的依賴檔案,以空格分開,這些依賴檔案的修改日期比目標的建立日期晚。目標的...

三極體的替換問題,三極體的替換原則

留個 郵箱我這有一個三極體的替換表 你可以找找 不一定有 三極體的替換原則 三極體13003代換問題?呵呵,d13003 d13005 d13007 d13009幾個耐壓一樣,電流是從小到大排列,你可以用d13005 d13007或d13009代替d13003,但不能用前面的代換後面的,也就是說不能...

CAD字型更換的問題,CAD字型替換

1.我一般用宋體,因為宋體誰的電腦上都有,而且也不難看,這個應該是因人而宜吧,如果你的電腦開啟檔案時提示缺少字型,可以ctrl a全選,右鍵特性,在文字欄內的字型修改為你想要字型就可以了 2.如果有一段字型是整體的,其實是一次編輯的多行文字,你可以點選選中,右鍵編輯多行文字,選中你要改顏色的文字,在...