用awk打印特定项目

时间:2016-10-14 03:37:58

标签: bash awk sed

我正在尝试打印以逗号分隔的字符串28213的第二部分。我做错了什么?

#!/bin/bash
file="4646484726,28213,93951656,Jameson Booker,10000043,Domain,60008494,Amarr VIII (Oris) - Emperor Family Academy,10,True,583000.0,100,71.0,2016-10-04 13:49:51.000,0,1,60618962,90,False,30002187,Amarr,7688312.5,"
echo "$file"|sed s/,/\\n/g | awk '{print $2}'

我理解sed正在用逗号将字符串拆分为块,而awk只返回其中包含空格的字符串,因此Jameson Booker返回Booker,但是我不知道如何拆分和返回整行的值,而不仅仅是逗号分隔值。

1 个答案:

答案 0 :(得分:0)

Awk列匹配不适用于您通过插入换行符创建的多行。默认情况下,它适用于基于空白的列。用空格替换逗号,而不是换行符。

echo "$file"|sed 's/,/ /g' | awk '{print $2}'

或者通过指定分隔符来分隔逗号:

echo "$file"| awk -F',' '{print $2}'