Linux命令之sed-替换字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令之sed-替换字符串相关的知识,希望对你有一定的参考价值。

参考技术A 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表示全局替换

linux命令之sed

sed命令格式

sed [options] command file(s)

替换:s命令

sed s/原字符串/替换字符串/

末尾的“g”代表替换全部,否则只替换每行的第一个:

# 替换所有匹配关键字
sed s/原字符串/替换字符串/g

“-i”参数:直接修改并保存

sed -i s/原字符串/替换字符串/g filename

对文件做备份:

sed -i .bak s/原字符串/替换字符串/g filename

例:source Insight中经常遇到很多Tab符换成4个空格,就可以使用此命令批量替换。

sed -i s/\t/    /g *.c  //将所有.c文件中的Tab符替换为4个空格
sed -i s/\t/    /g *.h  //将所有.h文件中的Tab符替换为4个空格

 

以上是关于Linux命令之sed-替换字符串的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之sed批量替换字符串操作

Linux命令之字符替换压缩删除tr

linux 特殊符号怎样用sed替换

如何用sed命令替换一行中的某个字符串

shell :linux sed 批量替换字符串

Linux:使用sed命令替换时,如何写入Tab符号呢