找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21838|回复: 8

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

[复制链接]
发表于 2014-10-10 11:35:31 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
请问怎样才能实现?谢谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-10-10 12:07:00 | 显示全部楼层
回复 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
复制代码
发表于 2014-10-10 12:38:49 | 显示全部楼层
回复 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技术 +1 收起 理由
Linuxer + 1 原来如此,i see

查看全部评分

 楼主| 发表于 2014-10-10 16:38:04 | 显示全部楼层
回复 3# DAIC
谢谢!
其它都可以,但有一句用不了
   -e "/^xx|^non/d" ^
原来能删的,现在删不了。
http://www.bathome.net/viewthread.php?tid=32361&highlight=
发表于 2014-10-10 17:07:07 | 显示全部楼层
回复 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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-10-10 17:08:21 | 显示全部楼层
回复 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
复制代码
发表于 2014-10-12 21:47:35 | 显示全部楼层
在 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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2014-10-12 21:51:50 | 显示全部楼层
另类一点的:
  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
复制代码
 楼主| 发表于 2014-10-12 22:53:29 | 显示全部楼层
回复 8# CrLf

谢谢!受益无穷!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:48 , Processed in 0.012414 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表