⑴ sed命令替換時如何使用正則表達式
sed 's/正則/替換為/g' 文件
s表示替換命令, /正則/是查找內容
"替換為"可以是 常規字元串也可以是前面正則中的捕獲,
g表示全局替換,不加g只替換1次。
⑵ linux sed命令替換特定字元之後的字元
1、首先進入到Linux系統,分別創建兩個目錄vim1、vim2。
⑶ sed命令替換指定字元串後面內容
sed -r 's/(ATTR\{address\}==")[^"]*/\1ABC/' A
結果得到:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ABC", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
⑷ sed如何將一個變數替換另一個變數
1、sed命令使用雙引號的情況下,可以使用$var(變數)直接引用:
echo | sed "s/^/$RANDOM.rmvb_/g"
13562.rmvb_
2、sed命令使用單引號的情況下,可以使用'"$var"'引用(單引號,然後雙引號,變數):
echo | sed 's/^/'"$RANDOM"'.rmvb_/g'
2442.rmvb_
sed中執行外部命令。
1、sed命令使用單引號的情況下使用'`shell command`'或者'$(shell command)'引用命令執行的結果:
echo | sed 's/^/'`echo $RANDOM`'.rmvb_/g'
7700.rmvb_# 結果
# 上面的命令使用了舊式的命令替換,也可以採用新式的命令替換方法,如下:
echo | sed 's/^/'$(echo $RANDOM)'.rmvb_/g'
13856.rmvb_# 結果
# 下面例子取用當前日期作為結果的一部分,如下:
echo | sed 's/^/'$(date +"%Y%m%d")'.rmvb_/g'
20130401.rmvb_ # 結果
2、sed命令中使用雙引號的情況下,直接`shell command`或者$(shell command)引用命令執行。
echo | sed "s/^/$(date +"%Y%m%d").rmvb_/g"
20130401.rmvb_# 結果
# 使用環境變數$RANDOM以及舊式命令替換的例子:
echo | sed "s/^/`echo $RANDOM`.rmvb_/g"
29484.rmvb_# 結果
總結一下
在sed語句裡面,變數替換或者執行shell命令,雙引號比單引號少繞一些彎子;所以,sed和變數的關鍵詞搜索的結果,眾多都寫上替換單引號為雙引號。
⑸ shell腳本sed替換命令的問題,求高手回答一下 謝謝啊
1)cata.config|grep"^name"累贅,直接寫為grep"^name"a.config
2)>>/dev/null,不需要>>,直接>就可以,即使輸出可能是多行內容,也可以作為一個整體。
3)=前後有空格的話,將"="(=前後加上了空格)設為欄位分隔符就可以了。
awk -F' = ' "{print $2}"
當然,最好的做法是用集合[= ],這樣=和空格都可以作為分隔符,而且無論=左右有幾個空格都可以處理。awk -F'[= ]' "{print $NF}" ,awk內置變數NF表示欄位數,$NF就可以取出最後一個欄位。
4)sed"s/"${name_test}"/"cat"/"a.config可以再簡單些:sed"s/${name_test}/cat/"a.config
不過,你要做替換,直接awk就可以完成了,何必awk加sed呢;此外,grep的結果保存下來,就不用做兩次了。
output=`grep"^name"a.config`
[-n"$output"]&&echo"$output"|awk'{$NF="cat";print}'
分隔符都不用設置,直接用默認的就可以。
⑹ sed 命令,我要替換一個字元 例如 a=/etc/data 要替換成 a=/app/data 怎麼弄
sed替換命令s可以用不同的符號作為分隔符,
sed -i 's#a=/etc/data#a=/app/data#'
將#號替代/作為分隔符,即可在查找替換中使用"/"字元
⑺ shell中sed命令如何替換
是把雙豎線||替換成雙豎線中間多了一個空格?||>| |
sed -i "s/||/|\ |/g" 文件名
參數-i,是j在原文件進行修改替換操作
我記得|不是特殊符號,不需要轉義。空格哪裡可以試一下有轉義或者沒轉義
⑻ sed命令替換
[root@localhost~]#catfile
ip=129.76.110.120
[root@localhost~]#cat1
#!/bin/bash
yourip=$1
sed-i"s/ip=.*/ip=$yourip/g"file
[root@localhost~]#sh1127.0.0.1
[root@localhost~]#catfile
ip=127.0.0.1
⑼ Linux批量替換多個文件中字元串
linux批量替換多個文件中字元串linux下批量替換多個文件中的字元串的簡單方法。用sed命令可以批量替換多個文件中的字元串。
用sed命令可以批量替換多個文件中的字元串。sed
-i
s/原字元串/新字元串/g
`grep
原字元串
-rl
所在目錄`例如:我要把mahuinan替換為huinanma,執行命令:sed
-i
s/mahuinan/huinanma/g
'grep
mahuinan
-rl
/www'這是目前linux最簡單的批量替換字元串命令了!具體格式如下:sed
-i
s/oldString/newString/g
`grep
oldString
-rl
/path`實例代碼:sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
/usr/aa`sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
./`
⑽ 如何用sed命令替換一行中的某個字元串
1、加個轉意符「\」
比如把/替換為#
echo
"a/b/c"
|
sed
"s/\//#/g"
a#b#c
2、把sed里的/改為冒號:
echo
"a/b/c"
|
sed
"s:/:#:g"
a#b#c