使用 awk 变量中字

问题描述 投票:0回答:1

我有一个非常具体和专有的用例,所以请容忍我的坏例子并相信我,这对我的用例更有意义。

我有一个目录,其中包含许多名为

foo
的文件,例如
foo_123
foo_456
等。我尝试使用 awk 中的变量来选择我想要的变量,如下所示:

ll | awk -v bar=7 '$NF~/foo_bar/ {print $NF}'

这不会返回任何内容,我假设这是因为 awk 没有将

bar
识别为单独的变量,而不是单词
foo_bar
的一部分。如何让 awk 识别单词内的变量?

variables awk command-line
1个回答
0
投票

几个选项(您似乎正在尝试查找文件

foo_7
):

1)

ll foo* | awk -v bar=7 '$NF ~ foo_ bar {print $NF}'
ll foo* | awk -v bar=foo_7 '$NF ~ bar {print $NF}'
  1. 最后一个选项,请勿使用
    awk
    😉
bar=7; find foo* -name foo_${bar}
  1. 甚至:
bar=7; ll foo_${bar}
  1. 不使用
    ll
    和/或
    find
    :
bar=7; echo -e "foo_1234\nfoo_7\nfoo_456" | grep foo_${bar}
© www.soinside.com 2019 - 2024. All rights reserved.