我正在尝试打印以逗号分隔的字符串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
,但是我不知道如何拆分和返回整行的值,而不仅仅是逗号分隔值。
答案 0 :(得分:0)
Awk列匹配不适用于您通过插入换行符创建的多行。默认情况下,它适用于基于空白的列。用空格替换逗号,而不是换行符。
echo "$file"|sed 's/,/ /g' | awk '{print $2}'
或者通过指定分隔符来分隔逗号:
echo "$file"| awk -F',' '{print $2}'