gpt4 book ai didi

regex - 在 egrep 的正则表达式中管道 bash 输入参数

转载 作者:行者123 更新时间:2023-12-04 05:52:18 24 4
gpt4 key购买 nike

这是我试图运行的脚本

#!/bin/bash

charlist=$1 #possible input:cat
wordlength=$2 #possible input: 3

cat ./nounlist | egrep \b[${charlist}]\b{${wordlength}}

输出:什么都没有。# 应该捕获以下内容(使用命令行)
$ cat nounlist | egrep "\b[cat]{3}\b"
act
cat's_cradle
cat
cat-o'-nine-tails
cat's-paw
Sno-cat
act
act
act
act
rat-a-tat-tat
cat
cat's-claw
cat's_foot
cat's-ear
cat's-tail
cat's-ear
cat's_eye

基本上,我正在尝试编写一个脚本,该脚本采用两个参数(wordlist、wordlength)并获取名词列表中由 wordlist 中的字符组成并具有 wordlength 变量长度的所有单词。我想知道的是如何将 bash 变量作为字符串放入 egrep 的正则表达式中?

谢谢!

最佳答案

您需要将参数用双引号括起来,以便 Bash 不会尝试处理反斜杠,并移动第二个 \b到后{${wordlength}} :

cat ./nounlist | egrep "\b[${charlist}]{${wordlength}}\b"

(如果你运行 echo \b ,你会看到它只打印 b 。这是因为 Bash 假设 \ 是为了防止 b 具有任何特殊含义;所以它删除了它。)

关于regex - 在 egrep 的正则表达式中管道 bash 输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936151/

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