gpt4 book ai didi

regex - 重击 : String manipulation with sed and Regular expression is not working: replace a string by slash

转载 作者:行者123 更新时间:2023-12-01 05:20:57 25 4
gpt4 key购买 nike

我希望你能帮助我:

这是我必须进行字符串操作的其中一行:

./period/0.0.1/projectname/path/path/-rw-rw-r--filename.txt 2462

其中最后一个数字是文件大小,供以后计算使用。

序列-rw-rw-r--来自列出输出的文件,其中我将文件与目录分开并跳过以“d”开头的所有行。现在我需要去掉行中的权限序列。

这是我的正则表达式,它完全达到了该目标:[/][-][-rwx]{9,9}我用正则表达式检查器检查了 tat 并得到了我想要的结果:字符串/- 包含以下 9 个字符。

我想要的:用单斜杠/替换该字符串“/- 包括以下 9 个字符”。为了避免转义,我在 sed 中使用管道作为分隔符。以下 sed 命令工作正常:

sed 's|teststring|/|g' inputfile > outputfile

问题:

当我替换我的正则表达式中的“teststring”时,它不会操纵任何东西:

sed 's|[/][-][-rwx]{9,9}|/|g' inputfile > outputfile

我完全没有收到任何错误,但结果输出文件中没有字符串操作。

我在这里做错了什么?

请帮忙!

最佳答案

您可以将此sed与扩展正则表达式一起使用:

sed -E 's|/-[-rwx]{9}|/|g' file

./period/0.0.1/projectname/path/path/filename.txt 2462
  • 无需在正则表达式中使用 [/][-]
  • 使用 -E 进行扩展正则表达式匹配
  • .{9,9}.{9}
  • 相同

关于regex - 重击 : String manipulation with sed and Regular expression is not working: replace a string by slash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50735953/

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