我有一个非常具体和专有的用例,所以请容忍我的坏例子并相信我,这对我的用例更有意义。
我有一个目录,其中包含许多名为
foo
的文件,例如foo_123
、foo_456
等。我尝试使用 awk 中的变量来选择我想要的变量,如下所示:
ll | awk -v bar=7 '$NF~/foo_bar/ {print $NF}'
这不会返回任何内容,我假设这是因为 awk 没有将
bar
识别为单独的变量,而不是单词 foo_bar
的一部分。如何让 awk 识别单词内的变量?
几个选项(您似乎正在尝试查找文件
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}'
awk
😉bar=7; find foo* -name foo_${bar}
bar=7; ll foo_${bar}
ll
和/或 find
:bar=7; echo -e "foo_1234\nfoo_7\nfoo_456" | grep foo_${bar}