Awk 打印第二列中的数据

Awk 打印第二列中的数据,awk,Awk,我有一个名为fixed.txt的文件,如下所示: Column1 | Column2 | Column3 Total expected ratio | 53 | 68 Total number|count number | 54 | 72 reset|print|total | 64 | 84 我正在尝试打印输出列2,如下所示: Fixed.txt: 53 54 64 我尝试了下面的脚本,但没有得到所

我有一个名为fixed.txt的文件,如下所示:

Column1                   | Column2 | Column3
Total expected ratio      | 53      | 68
Total number|count number | 54      | 72
reset|print|total         | 64      | 84
我正在尝试打印输出列2,如下所示:

Fixed.txt:
53
54
64
我尝试了下面的脚本,但没有得到所需的输出

#!/bin/bash
for d in fixed.txt
do
awk -F" | "
    NR>1
    awk '{ print $2 }' fixed.txt
done
我们可以一次使用管道(|)和空格作为分隔符吗?

第一种解决方案:您可以根据所显示的示例尝试以下内容吗。书面和测试



第二种解决方案:使用空格和
|
作为字段分隔符,您可以执行以下操作

awk -F'[[:blank:]]+\\|[[:blank:]]+' '{print $(NF-1)}'  Input_file


它正在工作,但我们可以同时使用管道和空间作为分隔符吗?@ADAPANIKHIL,是的,请在上面提到的链接中进行测试,它正在工作,请检查一下。我用手机写的,几分钟后还会再添加一个解决方案。你把awk和shell语法混合得很糟糕。您有
awk-F“|”
后面没有awk脚本,然后在bash中有
NR>1
当我假设它应该是awk脚本的一部分时,您就有了awk脚本。然后将整个过程包装在一个shell循环中,该循环只循环1次,并设置一个从未使用过的变量。awk和shell是两种完全不同的工具,它们各自具有各自的语法、语义等。您应该尝试查找有关shell基础知识的教程和关于awk基础知识的单独教程。
awk -F'[[:blank:]]+\\|[[:blank:]]+' '{print $(NF-1)}'  Input_file
awk -F' +\\| +' '{print $(NF-1)}' Input_file