gpt4 book ai didi

linux - 对文本 Bash Linux 中的特定列使用 grep

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:11 47 4
gpt4 key购买 nike

有一个简单的问题。

基本上,我希望从文本文件中获取行/行,其中列以特定数字开头。我获取信息的文本文件中的示例行是

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 的行,因为正如我之前所说,第三列中有 1

有没有办法使用 grep 只使用第 1 列?我将使用代码来捕获变量中的特定列以供以后使用。

最佳答案

使用 awk 进行这些基于列的搜索 -

cuenta=1
awk -F: -v var="$cuenta" '$1 == var {print $0}' $documento | cut -d":" -f1,2,4

这只会匹配第一列中有 1 的行。

关于linux - 对文本 Bash Linux 中的特定列使用 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814891/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com