Board logo

标题: [问题求助] [已解决]sed命令怎样输入带“/”文本? [打印本页]

作者: syqh2010    时间: 2014-10-12 18:31     标题: [已解决]sed命令怎样输入带“/”文本?

本帖最后由 syqh2010 于 2015-3-4 00:24 编辑

比如我想在“ --SONW3”的下一行写入“     R1/R2           07.00          06.00”
要求效果如下
--SONW3
     R1/R2           07.00          06.00
用高手给的代码
sed -r -e "s/^ --SONW3.*/&\n     R1/R2           07.00          06.00/" a.txt>b.txt
输出的内容为空白,查了下好像是说不能用“/”?
请问各位有何办法实现?直线若走不了,绕着走也行。
作者: Batcher    时间: 2014-10-12 18:40

sed -r -e "s/^ --SONW3.*/&\n     R1\/R2           07.00          06.00/" a.txt>b.txt
作者: CrLf    时间: 2014-10-12 21:22

可以用其他字符代替 /,一般建议用这些:
  1. sed -r -e "s#^ --SONW3.*#&\n     R1/R2           07.00          06.00#" a.txt>b.txt
  2. sed -r -e "s@^ --SONW3.*@&\n     R1/R2           07.00          06.00@" a.txt>b.txt
  3. sed -r -e "s_^ --SONW3.*_&\n     R1/R2           07.00          06.00_" a.txt>b.txt
  4. sed -r -e "s=^ --SONW3.*=&\n     R1/R2           07.00          06.00=" a.txt>b.txt
复制代码
也可以用字母和数字,但不建议这么做:
  1. sed -r -e "sE^ --SONW3.*E&\n     R1/R2           07.00          06.00E" a.txt>b.txt
  2. sed -r -e "s8^ --SONW3.*8&\n     R1/R2           07.00          06.008" a.txt>b.txt
复制代码
甚至连用不着的元字符也可以当分隔符使,不推荐:
  1. sed -r -e "s+^ --SONW3.*+&\n     R1/R2           07.00          06.00+" a.txt>b.txt
  2. sed -r -e "s?^ --SONW3.*?&\n     R1/R2           07.00          06.00?" a.txt>b.txt
复制代码

作者: syqh2010    时间: 2014-10-12 22:56

回复 2# Batcher
谢谢,已完美解决,多谢帮忙再次修改贴子!
作者: syqh2010    时间: 2014-10-12 22:58

回复 3# CrLf
谢谢你的详细解答!!!受教了,看来没有批处理搞不定的问题。
作者: syqh2010    时间: 2014-10-12 22:58

回复 3# CrLf




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2