⑴ 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