我有两个制表符分隔格式的文本文件,如下所示。
文件_1
Entry_1 36372 36414 7 Aa 14956 36371 -
Entry_1 36471 36526 3 Aa 14956 36371 -
文件_2
Entry_1 36365 36395 -
Entry_1 36366 36394 -
Entry_1 36367 36395 -
Entry_1 36368 36395 -
Entry_1 36394 36414 -
Entry_1 36471 36502 +
Entry_1 36483 36516 +
Entry_1 36495 36526 +
这两个文件内容被存储到两个不同的变量中。现在我想提取第 4 列中带有“+”符号的行并将其存储在变量中,然后打印出来。但它抛出错误信息:
"line 4: /usr/bin/awk: Argument list too long"
"line 5: /usr/bin/awk: Argument list too long"
这是我试过的代码
#!/bin/bash
value_1=$(cat file_1.txt);
value_2=$(cat file_2.txt);
plus="$(awk '$4=="+"' "$value_2" )"
minus="$(awk '$4=="-"' "$value_2")"
echo "$plus"
echo "$minus"
请多指教。我想提取那些带有“+”和“-”符号的条目并存储在变量“$plus”和“$minus”中。
最佳答案
file.1 似乎没有被使用。要将行获取到变量,您可以这样做
$ plus=$(awk '$4=="+"' file.2)
同样,你可以对负号做同样的事情。
$ echo "$plus"
Entry_1 36471 36502 +
Entry_1 36483 36516 +
Entry_1 36495 36526 +
如果这是你想要实现的。
关于linux - 将 awk 操作存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40202260/