[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]sed语句怎么换行

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

不知这样提问对不对啊。
如有一语句
  1. sed -r -e "1ibathome" -e "/^man/athank" -e "/^wei/abang8856" -e "/^xx|^non/d" -e "/^  gan/s/.*/gan555/" -e "/^xie/s/.*/xiexie/" -e "$averymuch" a.txt>b.txt
复制代码
我想分成一段一段的,这样好看,容易改,效果类似下面
  1. sed -r -e "1ibathome"
  2. -e "/^man/athank"
  3. -e "/^wei/abang8856"
  4. -e "/^xx|^non/d"
  5. -e "/^  gan/s/.*/gan555/"
  6. -e "/^xie/s/.*/xiexie/"
  7. -e "$averymuch"
  8. a.txt>b.txt
复制代码
请问怎样才能实现?谢谢!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 8# CrLf

谢谢!受益无穷!

TOP

另类一点的:
  1. @echo off
  2. (
  3. sed -i "1,/^:SedScript/s/^/#/" "%~0"
  4. sed -r -f SedScript.txt  a.txt>b.txt
  5. sed -i "1,/^#:SedScript/s/#//" "%~0"
  6. )
  7. pause & exit /b
  8. :SedScript
  9. 1ibathome
  10. /^man/athank
  11. /^wei/abang8856
  12. /^xx|^non/d
  13. /^  gan/s/.*/gan555/
  14. /^xie/s/.*/xiexie/
  15. $averymuch
复制代码

TOP

在 SedScript.txt 中保存以下内容:
  1. 1ibathome
  2. /^man/athank
  3. /^wei/abang8856
  4. /^xx|^non/d
  5. /^  gan/s/.*/gan555/
  6. /^xie/s/.*/xiexie/
  7. $averymuch
复制代码
然后用 -f 选项来加载:
  1. sed -r -f SedScript.txt  a.txt>b.txt
复制代码
1

评分人数

TOP

回复 3# DAIC
谢谢,可以了,要一个 -r
  1. @echo off
  2. sed -r -e "1ibathome" ^
  3.        -e "/^man/athank" ^
  4.        -e "/^wei/abang8856" ^
  5.        -e "/^xx|^non/d" ^
  6.        -e "/^  gan/s/.*/gan555/" ^
  7.        -e "/^xie/s/.*/xiexie/" ^
  8.        -e "$averymuch" ^
  9. a.txt > b.txt
复制代码

TOP

回复 4# syqh2010


@echo off
sed -r -e "1ibathome" ^
    -e "/^man/athank" ^
    -e "/^wei/abang8856" ^
    -e "/^xx|^non/d" ^
    -e "/^  gan/s/.*/gan555/" ^
    -e "/^xie/s/.*/xiexie/" ^
    -e "$averymuch" ^
a.txt > b.txt
1

评分人数

TOP

回复 3# DAIC
谢谢!
其它都可以,但有一句用不了
   -e "/^xx|^non/d" ^
原来能删的,现在删不了。
http://www.bathome.net/viewthread.php?tid=32361&highlight=

TOP

回复 2# Linuxer
  1. @echo off
  2. sed -e "1ibathome" ^
  3.     -e "/^man/athank" ^
  4.     -e "/^wei/abang8856" ^
  5.     -e "/^xx|^non/d" ^
  6.     -e "/^  gan/s/.*/gan555/" ^
  7.     -e "/^xie/s/.*/xiexie/" ^
  8.     -e "$averymuch" ^
  9. a.txt > b.txt
复制代码
1

评分人数

    • Linuxer: 原来如此,i see技术 + 1

TOP

回复 1# syqh2010


    需要写全命令
  1. sed -r -e "1ibathome" a.txt > b.txt
  2. sed -r -e "/^man/athank" a.txt >> b.txt
  3. sed -r -e "/^wei/abang8856" a.txt >> b.txt
  4. sed -r -e "/^xx|^non/d" a.txt >> b.txt
  5. sed -r -e "/^  gan/s/.*/gan555/" a.txt >> b.txt
  6. sed -r -e "/^xie/s/.*/xiexie/" a.txt >> b.txt
  7. sed -r -e "$averymuch" a.txt >> b.txt
复制代码
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

返回列表