linuxsed命令 linux sed命令添加行( 二 )


address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替换命令s:
1、全局替换 : s/old/new/g ,其中g为全局替换 , 用于替换所有出现的次数; /如果和正则匹配的内容冲突可以使用其他符号,如 : s@old@new@g
2、标志位
为什么要有多行模式: 配置文件一般有单行出现,但也有使用json或XML格式的配置文件,为多行出现 。
多行模式处理命令N、D、P
Linux日志截取利器——sed命令(亲测可用) 在生产环境中linuxsed命令 , 往往没有条件给linuxsed命令我们去debug排查linuxsed命令,更多时候我们是通过日志来看具体的报错日期 。
但是日志往往是一直在实时更新,而且记录条数庞大,很难直接定位到错误信息 。这个时候 , 就可以利用sed命令来截取指定时间段内的日志(也是网上大多数博主的做法) 。
具体命令如下linuxsed命令:
这条命令可以查询2020.10.13号当天9点到9点十分中间的所有的日志信息 。
但是这条命令的使用有两个前提(很多网上的博主都没有提到)
第一,日志输出的日期格式是要满足命令中的格式 ,如果不是的话就跟着实际的格式改
第二 , 输入的日期必须要真实存在?。。?,比如说9点整刚好没有日志输出,那么这条命令就会失效
更加通配的命令可以是这样,使用号*
这样无论九点整的时候是否有日志产生 , 就都可以获取到9点整到现在的所有日志了
使用,将截取到的内容输出到指定的文件中,方便进一步查看
ps:在实际操作中,我们一般会在后面加grep命令做进一步的关键字过滤
Linux命令之sed-替换字符串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' `grepCANCEL_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-8testutf8.dat
---把test.dat中的欧元符号替换成竖线 , 再将文件gbk格式转成utf8
-i选项是直接在文件中替换,不在终端输出;
-r选项是所给的path中的目录递归查找;
-l选项是输出所有匹配到oldstring的文件;
s/表示替换
/g表示全局替换
关于linuxsed命令和linux sed命令添加行的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读