linux shell 用sed命令在文本的行尾或行首添加字符

linux shell 用sed命令在文本的行尾或行首添加字符,第1张

最后还是想用简单的脚本解决,发现使用 sed 命令可以方便得在文件每一行后添加一个字符。首先看一下 sed 命令。

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间” (pattern space) ,接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。 Sed 主要用来自动编辑一个或多个文件;简化对文件的反复 *** 作;编写转换程序等。

假设处理的文本为 test.file ,在每行的头添加字符,比如 HEAD ,命令如下:

在每行的行尾添加字符,比如 TAIL ,命令如下:

几点说明:

这样就处理完了!总之恰当使用sed命令是可以避免来回打开文件造成的时间浪费,可以使用sed命令在linux脚本中做一些更好玩的事情。希望这篇文章可以给你一些帮助~

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表示全局替换


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

原文地址:https://54852.com/bake/8001303.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存