标题: [文本处理] 批处理怎样根据缩进删除多行? [打印本页]
作者: newswan 时间: 2021-1-31 02:01 标题: 批处理怎样根据缩进删除多行?
本帖最后由 newswan 于 2021-2-1 17:21 编辑
- proxies:
- - name: TW_2711 |14.12Mb
- server: 2.58.241.4
- port: 38033
- type: ss
- cipher: aes-256-gcm
- password: xpQwyV4W5FdA6NMANJJx73US
- - name: TW_2712 |12.94Mb
- server: 2.58.241.3
- port: 37473
- type: ss
- cipher: aes-256-gcm
- password: enctdKyJfSu76VqznKwTt6Ap
- proxy-groups:
- - name: 节点选择
- type: select
- proxies:
- - ♻️ 自动选择
- - DIRECT
- - TW_2711 |14.12Mb
- - TW_2712 |12.94Mb
- - name: ♻️ 自动选择
- type: url-test
- url: http://www.gstatic.com/generate_204
- interval: 300
- tolerance: 50
- proxies:
- - TW_2711 |14.12Mb
- - TW_2712 |12.94Mb
复制代码
proxies 以下,每个name为一段,将包含"TW"的段删除?
用怎么的方法好?
上面文本中,第2到第7为一组,第8到13为一组,如果组的第一行包含 "TW" ,删除这一组
作者: qixiaobin0715 时间: 2021-1-31 10:30
没表达清楚,将处理结果贴出来让人更容易理解。
作者: flashercs 时间: 2021-1-31 11:02
本帖最后由 flashercs 于 2021-1-31 22:33 编辑
- sed -C -E -e ":a;$!{N;ba;};s/^([[:blank:]]*)-[[:blank:]]+name:[[:blank:]]+TW[^\n]*$(\n([[:space:]]*|\1[[:blank:]]+[^\n]*)$)*\n?//mg" .\A.txt>.\B.txt
复制代码
论坛下载 http://bcn.bathome.net/tool/4.8/sed.exe
作者: newswan 时间: 2021-2-1 17:27
本帖最后由 newswan 于 2021-2-1 17:31 编辑
回复 2# qixiaobin0715
这种情况可以概括为:
yaml 格式 或者 json 格式 ,一个段包含多行,根据段中一个条件,删除整段- name 1
- line 1-1
- line 1-2
- name 2
- line 2-1
- line 2-1
-
复制代码
- {
- line 1-1
- line 1-2
- line 1-3
- }
- {
- line 2-1
- line 2-2
- line 2-3
- }
复制代码
作者: newswan 时间: 2021-2-1 17:32
回复 3# flashercs
谢谢,学习下
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |