错误bash提取匹配模式的第二列

时间:2013-07-05 06:19:51

标签: linux bash shell

我正在尝试搜索模式,从结果中我只提取第二列。该命令在命令行中运行良好,但不在bash脚本中。

#!/bin/bash
set a = grep 'NM_033356' test.txt | awk '{ print $2 }'
echo $a

它根本不打印任何输出。

输入

NM_033356  2
NM_033356  5
NM_033356  7

3 个答案:

答案 0 :(得分:1)

.......

a="$(awk '/NM_033356/ { print $2 }' test.txt)"

答案 1 :(得分:1)

您的代码:

#!/bin/bash
set a = grep 'NM_033356' test.txt | awk '{ print $2 }'
echo $a

将其更改为:

#!/bin/bash
a="$(awk '$1=="NM_033356"{ print $2 }' test.txt)"
echo "$a"

代码更改取决于您的示例输入。

答案 2 :(得分:0)

试试这个:

a=`grep 'NM_033356' test.txt | awk '{ print $2 }'`