取输入数字作为输入

时间:2014-04-07 10:31:25

标签: shell

grep -o '\w\{4\}' file

我想找到比用户给出的值更长的单词。现在,上面的代码给了我至少4个字母的单词,但如果我在将数字读入n后用$n替换4,则表示括号之间的内容不正确。我怎么能使用读取值而不是预定值?

2 个答案:

答案 0 :(得分:1)

n=5
eval "grep -o '\w\{$n\}'  filename"

答案 1 :(得分:1)

使用单引号,$n将不会被解释。如果你使用双引号就可以了:

grep -o "\w\{$n\}" file

但我认为你会想要使用

grep -o "\w\{$n,\}" file

因为长度为8-11的单词会匹配两次,12-15次会等三次。