sed-使用sed替换字符串

sed-使用sed替换字符串,第1张

使用sed替换文件字符串,-i参数为直接替换,不加参数为展示不修改原文件

格式:sed -i “s/原字符串/新字符串/g”  文件名

[root@ser123 ~]# sed -i "s#/root/test.goago.cn.key#/home/ssl/test.goago.cn.key#g" ./*  

替换当前目录下所有包含/root/test.goago.cn.key的文件,如果替换字符串中包含/,原sed的分隔符可以修改为#或@都可以

sed -i '1,10000'd 文件名                           #使用sed删除文本中的行

sed -i 's/^/docker push /g' 文件名           #每行行首添加内容,"^"代表行首,"$"代表行尾

2.替换文件名

替换当前目录下所有文件名中的字符串,dev替换test

rename test  dev  ./*

1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json

---指定文件替换,将文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;

2. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`

---批量文件替换,递归查找含CANCEL_TIME的文件,将所有文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;

3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname

---带/的字符串替换,将/tmp/ditagent/TF_B_PAYLOG_D.csv替换成/vdata/datapre/281/'"$filename"'

4. sed -i 's/^/beginstring&/g' *.txt

---在所有行首添加字符串;

5.  sed -i 's/$/&endstring/g' *.txt

---在所有行末添加字符串

6. sed -i '2s/原字符串/替换字符串/g' *.txt

---替换第2行

7. sed -i '$s/原字符串/替换字符串/g' *.txt

---替换最后一行

8. sed -i  '2,5s/原字符串/替换字符串/g' *.txt

---替换2到5行

9. sed -i  '2,$s/原字符串/替换字符串/g' *.txt

---替换2到最后一行

10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 >testutf8.dat

---把test.dat中的欧元符号替换成竖线,再将文件gbk格式转成utf8

-i选项是直接在文件中替换,不在终端输出;

-r选项是所给的path中的目录递归查找;

-l选项是输出所有匹配到oldstring的文件;

s/表示替换

/g表示全局替换

可以使用一个sed命令实现将文件中的所有左右括号替换为空字符串。命令如下:

其中,s/[()]//g表示全局替换方案,将文件中所有括号(包括左括号 ( 和右括号 ))替换成空字符串(即删除)。注意,这里需要用到正则表达式的字符类([])来描述括号。最后的text.txt是待处理文件的名称。

使用上述命令,可以同时去掉文件中的左括号和右括号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11821519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存