Awk 打印第二列中的数据
我有一个名为fixed.txt的文件,如下所示: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 我尝试了下面的脚本,但没有得到所
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