格式: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是待处理文件的名称。
使用上述命令,可以同时去掉文件中的左括号和右括号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)