快速提问。
基本上我想从文本文件中获取行/行,其中列以特定数字开头。 我收到信息的文本文件中的示例行是
1 : ACTIVO : : 0
11 : ACTIVO CIRCULANTE : 1 : 0
111 : CAJA : 11 : 0
11101 : CAJA GENERAL : 111 : 0
11102 : CAJA CHICA : 111 : 0
每一行用“:”隔开我想通过使用数字“1”来获取第一行。它将显示第1行,我正在寻找的那一行。但是也会显示以“11”开头的行,因为在第三列中有“1”。
到目前为止我正在使用它,这是我需要修复的代码
grep -w "$cuenta" $documento | cut -d":" -f1,2,4
其中$ cuenta保存我想要的数字,例如:1和$ documento是我正在使用的txt文件。 这将打印出文本中的第1,2和3列,但也将打印2行,1和11,因为我之前说过,第3列中有1行
有没有办法只使用grep来使用第1列? 我将使用代码来捕获变量中的某些列以供以后使用。
答案 0 :(得分:1)
使用awk
进行基于列的搜索 -
cuenta=1
awk -F: -v var="$cuenta" '$1 == var {print $0}' $documento | cut -d":" -f1,2,4
这只匹配第一列中1
的行。