gpt4 book ai didi

linux - 将文本放在行首的括号内

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:06 27 4
gpt4 key购买 nike

我有以下文本字符串:

185.244.25.157 [10 Feb @ 12:53:52] "GET login.cgi HTTP/1.1" 400 0

是的,那是一个恶意机器人试图破坏我的系统,但这不是重要的事情。

我希望方括号之间的文本(我的意思是: [ ] )位于字符串的开头。这会给我以下输出:

[10 Feb @ 12:53:52] 185.244.25.157 "GET login.cgi HTTP/1.1" 400 0

我在文档中进行了搜索,但没有找到任何相关内容。

谁能告诉我应该在哪里搜索?

干杯。

最佳答案

您可以使用 sed:

sed 's/\(.*\)\(\[[^]]*\] \)/\2\1/' file.in > file.out
  • s/PATTERN/REPLACMENT/ 是一个替换,它用替换替换与模式匹配的所有内容。某些字符在模式中具有特殊含义:
  • . 匹配任何字符
  • * 表示“重复 0 次或多次”,因此 .* 匹配任意数量的任意字符
  • \(...\) 是捕获括号,保存与其内部匹配的内容(第一个捕获到 \1,第二个捕获到 \2,依此类推)
  • [...] 引入一个字符类,它匹配方括号内的任何字符
  • ^ 是字符类中的否定,因此 [^]] 匹配除 ] 之外的任何字符,而 [^]]* 匹配除 ] 之外的任意数量的任何字符
  • \[ 与文字 [ 匹配,与 \]
  • 类似

因此,第一个[之前的字符存储在\1中,从[到第一个]的后续字符存储在\2中,这两部分被\2\1替换,即它们的顺序颠倒了。

关于linux - 将文本放在行首的括号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54856518/

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