gpt4 book ai didi

regex - 打印行中的第一个数字,后跟制表符和没有数字的行

转载 作者:行者123 更新时间:2023-12-01 08:45:47 24 4
gpt4 key购买 nike

我很难用 sed 完成这项任务。

示例输入:

X(996002) dsafsafdsfdsfds dsfdsfds dsfd ds
Y(300342) dsfdsfhdsfhsa dsf;dsjfds f 15 16 .
"(1200479) dsfkjdsfhjfds dsfdsj sd "

示例输出:

996002 TAB ) dsafsafdsfdsfds dsfdsfds dsfd ds
300342 TAB ) dsfdsfhdsfhsa dsf;dsjfds f 15 16 .
1200479 TAB ) dsfkjdsfhjfds dsfdsj sd "

到目前为止,我有以下 sed:

sed -e 's/^.*\([0-9]*\)\(.*?\)$/\1 \t \2/gp' textfile.txt

但我想我不明白让它发挥作用的东西。

最佳答案

您可以使用:

sed -i.bak 's/^[^[:digit:]]*\([[:digit:]]\+\)/\1\t /' file
996002 ) dsafsafdsfdsfds dsfdsfds dsfd ds
300342 ) dsfdsfhdsfhsa dsf;dsjfds f 15 16 .
1200479 ) dsfkjdsfhjfds dsfdsj sd "

解释:

  • -i.bak - 内联编辑,以.bak 扩展名保存原始文件
  • ^ - 匹配 linse 开始
  • ^[^[:digit:]]\+ - 在开头匹配 1 个或多个非数字
  • \(...\) - 将封闭的内容分组到捕获组#1
  • \([[:digit:]]\+\) - 在第 1 组中捕获 1 个或多个数字
  • \1\t - 替换为第 1 组,后跟一个制表符和一个空格

关于regex - 打印行中的第一个数字,后跟制表符和没有数字的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28055043/

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