【问题标题】:Embedding quotation marks in command string generated by AWK?在AWK生成的命令字符串中嵌入引号?
【发布时间】:2025-12-12 21:50:01
【问题描述】:

我需要将一个文件中的所有字符串实例与另一个文件中的主列表进行匹配。但是,如果我的字符串是 abc,我只想要那个,而不是 abcdefabc1234 等等。

那么,正则表达式的单词边界?现在,我正在使用一个简单的 awk one 班轮:

cat results_file| sort -k 1| awk -F" " '{ print $1" /home/owner/file_2_search"}'|
xargs -L 1 /bin/grep -i

但是,要强制使用单词边界,我需要 grep string\b 并且引号(单引号或双引号)似乎是必需的。

在 awk 中,\b 是一个特殊字符,您需要 \\b ... 和引号 ... (arg) ... 还是我遗漏了什么并且做得过火了?

这是一个 Linux 机器,所以大概是 gawk。我已经阅读了 awk 的引用规则,并意识到这必须很简单(而不是复杂......但是),但我没有看到它。

【问题讨论】:

  • edit 您的问题,使用编辑器的{} 按钮正确格式化所有代码、示例输入和预期输出,使其易于阅读。
  • 当然(这可能会是一团糟,但这是有道理的)abc abcd jk1234 oo_123 xyz xyzabc
  • 我不明白你的脚本在做什么或者关于双重转义 \b 和引用引号的东西是关于什么的。你还说你想匹配字符串,但是你正在讨论正则表达式——你想匹配哪个?请edit您的问题包括简洁、可测试的样本输入和预期输出,以证明您正在尝试做什么以及我们可以测试潜在的解决方案。
  • 无法正确显示表格。怀疑问题是引用,而不是正则表达式,但两者交织在一起。稍后再试,然后关闭它。

标签: linux bash shell awk sed


【解决方案1】:

本意是作为答案发布,而不是评论。将尝试提出一个更具可读性的问题,但承认首先考虑将其作为单线来执行此操作 - 可能最好遵循另一种方法。感谢愿意提供帮助。 --乔

【讨论】: