sed匹配替换整行内容 sed匹配出多行时如何只在第一个匹配行下方添加行?
sed匹配出多行时如何只在第一个匹配行下方添加行?
预览:sed-N-e“/AAA/{nnns |$|N new line | P}”3hangu添加行.txtsed-I-e “/AAA/{nnns |$|n新添行|}”3hang|添加行.txt说明:NNN是从匹配的AAA往下走三行,然后在行尾添加一个新行字符。也许你想问,如果我想在匹配AAA后的1000行中添加新行,我是否需要键入“n”1000次?我的回答是,如果数字很大,我宁愿用你不想用的方法来提问。预览:num=`sed-N-e“/AAA/=”3hangu添加行.txt`Sed-N$((Num 3))“s |$N要添加的行| P”3hangu添加行.txt应用程序:num=`sed-N-e“/AAA/=”3hangu添加行.txt`Sed-I$((Num 3))“s |$ 要添加的行|”3hangu添加行.txt
sed如何替换匹配的数字?
日志文件中的一行is:ABC135你好。如果您想使用regular来查找,请分别使用命令egrep和sed。 问题1:在数字匹配中,D用于匹配数字,但不能将135与D匹配,只能与[0-9]匹配。问题2:egrep可以用[0-9]正则化匹配135,但是sed不能[根@livedvdlog]#egrep“abcd[0-9]你好”tmp.txt文件 abcd135hello [根@livedvdlog]#egrep“你好”tmp.txt文件 [根@livedvd日志]#sed-n“/abcd[0-9]你好/p”tmp.txt文件 [根@livedvd日志]#sed-n“/abcdd您好/p”tmp.txt文件 [根@livedvd稍后,我试图找出D在sed中可以匹配的内容,发现是字母D而不是数字[根@livedvd日志]#sed-n“s/d/aaaaaaaaaa/p”tmp.txt文件 abcaaaaa135hello [根@livedvd第一步是将<script>myself</script>替换为<script->myself</script>
第二步步骤是杀死<script>。*</script>
第三步是将<script->myself</script>替换为<script>myself</script>
~]=GNU/Linux++]GNU{bash
2.05b,grep 2.5,awk
3。
1.3,sed
4.0.8}
~。
请参阅如何在sed中转义双引号和单引号。
如何用sed命令替换一行中的某个字符串?
为了叙述方便,假设您要匹配的字段是panda
我有一个想法:
用panda只替换一次所有行(不要在SED中使用G命令)-用文本中不存在的特殊字符串替换panda,例如@
在第一步之后,其余包含panda的行是您应该删除的行。
删除后,将@@@还原到panda。
如果不清楚,请看下面的图片-我的实验:测试.txt该文件的内容如下:
duck panda duck
goose goose duck panda
bear bear duck panda
sed-I“/AAA/{:ans/123/XYZ/g/EEE/!Ba}“yourfile;首先匹配AAA,然后执行大括号中的语句。;n读取下一行;s/123/XYZ/g将123替换为XYZ,全局替换,在同一行中多次;:a set jump label a/EEE/!Ba如果当前行与EEE不匹配,跳转到标签a并继续执行,形成一个循环。如果它与EEE匹配,它将退出循环,sed将为再次读入的每一行匹配AAA。由于sed没有添加-N silent选项,因此默认情况下它将打印每一行数据。
sed匹配替换整行内容 sed只修改第一次匹配 sed命令匹配指定行的后两行
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。