gpt4 book ai didi

linux - 这个 sed 命令行有什么作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:57 24 4
gpt4 key购买 nike

我在书房里看到这条线。

$temp = 'echo $line | sed s/[a-z AZ 0-9 _]//g'
IF($temp != '')
echo "Line contains illegal characters"

我不明白。 sed 不就是代入函数吗?在代码中,[a-z AZ 0-9 _] 应替换为 ''。我不明白这如何确定 $line 是否包含非法字符。

最佳答案

sed 是一个流编辑器工具,它应用正则表达式来转换输入。命令

sed s/regex/replace/g

从 stdin 读取,每次找到匹配 regex 的内容时,它都会用 replace 的内容替换它。在你的例子中,命令

sed s/[a-z A-Z 0-9 _]//g

[a-z A-Z 0-9] 作为它的正则表达式和空字符串作为它的替换。 (你忘记了 A 和 Z 之间的破折号吗?)这意味着任何匹配指定正则表达式的内容都会被删除。此正则表达式表示“az 之间、AZ 之间、 之间的任何字符>09,一个空格或一个下划线,”所以这个命令实质上是从输入中删除任何字母数字字符、空格或下划线,并将剩下的转储到标准输出。测试输出是否为空,然后询问是否有任何不是字母数字、空格或数字的字符,代码就是这样工作的。

我建议将 sed 添加到您应该基本熟悉的工具列表中,因为它在命令行上很常见。

关于linux - 这个 sed 命令行有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41232201/

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