精确查找字符串;“模式”;当两个字符串具有相似的单词时使用awk

精确查找字符串;“模式”;当两个字符串具有相似的单词时使用awk,awk,Awk,我有一个有很多行的文件,我想从存在这种模式的列中获取值:“每次增强CAR\u Red”,但在文件中,还有另一个字符串有类似的词:“每次清洗增强CAR\u Red”。我只想找第一根绳子。我试图放置“^”和“$”,但它们只在行的开头起作用 有什么建议吗 谢谢 这是包含原始文件的行的一个示例: Cn Operator Index Operator Name License Identifier Description 0

我有一个有很多行的文件,我想从存在这种模式的列中获取值:“每次增强CAR\u Red”,但在文件中,还有另一个字符串有类似的词:“每次清洗增强CAR\u Red”。我只想找第一根绳子。我试图放置“^”和“$”,但它们只在行的开头起作用

有什么建议吗

谢谢

这是包含原始文件的行的一个示例:

Cn Operator Index  Operator Name  License Identifier  Description                                  
0                  DODGE          ID20                Enhanced CAR_Red per time                          
0                  DODGE          ID27                Wash Enhanced CAR_Red per time     

我正在寻找“增强型CAR\u Red per”以获得“许可证标识符”,但我收到了两个寄存器。

我以前没有使用过AWK,但通常在使用正则表达式时,这里有一些解决问题的好方法

您可以在“每次增强汽车”之前添加一些额外的规格。如果该行应该以该字符串开头,则使用“^”,但如果您知道要允许使用额外的空格或逗号(任何仅表示您正在搜索的特定术语的内容),则也可以添加它们

例如,如果您正在查看一个以逗号分隔的列表,则将术语“[,]*每次增强型车”设置为红色


如果术语“每次清洗增强型车红”是唯一出现的错误,那么您还可以指定“每次清洗增强型车红”&&!“每次清洗增强型汽车”指定您不想在那里清洗

您可以在启动awk之前使用“每次清洗增强型汽车”抑制行:

grep -v "Wash Enhanced CAR_Red per time" yourfile | awk '/Enhanced CAR_Red per time/{print}' 

如果您能提供一个输入示例和所需的输出,这将有助于您更快地得到好的答案。您的文件看起来像是用制表符(空格)分隔的
空格
?他们是不同的!在顶部,它们是列的名称,所以,我猜,它们是tabI刚刚看到这个问题,并准备发布相同的内容。你打败了我的宝贝。。。咕噜咕噜!我有一种感觉,我们刚刚开始在这一个洋葱皮,所以我认为你会有很多机会!我猜他想要的是
$NF==“每次增强的红色汽车”。
awk -F'\t' '$NF~/^Enhanced CAR_Red per/{ print $(NF-1) }' file