gpt4 book ai didi

regex - 如果使用 linux 命令行工具在文本文件的下一行中满足条件,则替换换行符

转载 作者:行者123 更新时间:2023-12-05 09:27:00 26 4
gpt4 key购买 nike

输入

$ cat input.txt
345 "cuad" "dfr"
23 "test3" "dfec2
"v1"
33 v2
v3"
32 "key3" "fer"
12 "rte" "ef"

目标,仅当下一行不是以数字和制表符开头时,我才想用空格替换换行符

345 "cuad"  "dfr"
23 "test3" "dfec2 "v1" 33 v2 v3"
32 "key3" "fer"
12 "rte" "ef"

试试这个 bash command to remove new lines if condition on the next line is met但我不能适应我的需要

尝试了,还是不行

$ perl -0777 -pe 's/\n(?=[^0-9]+\t)/ /g' input.txt

最佳答案

你可以使用这个带有否定前瞻的 perl 命令:

perl -0777 -pe 's/\R(?!\d+\t|\Z)/ /g' file

345 "cuad" "dfr"
23 "test3" "dfec2 "v1" 33 v2 v3"
32 "key3" "fer"
12 "rte" "ef"

正则表达式详细信息:

  • \R:匹配任何换行符(符合unicode)
  • (?!\d+\t|\Z):否定前瞻断言我们没有 1+ 数字后跟制表符或输入结束

关于regex - 如果使用 linux 命令行工具在文本文件的下一行中满足条件,则替换换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73152164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com