如何使用命令行从文件中选择列

时间:2014-04-29 10:31:54

标签: regex bash grep

我的文件如下所示:

some random text : azoidfalkrnalrkazlkja
zlazekamzlekazmlekalzkemlkmlkmlkmlkmlkml
o&kjoik&oék"&po"éképo"k&éo"kéo"koé"kk"k"

Column1 Column2 Column3 Column4 Column5
=======================================
  0       1      1000   No_Light X Disabled (Persistent)
  1       1      1010   Online   X E-Port 10:20:30:40:50:60:70:80 "some comment"
  2       1      1020   Online   X F-Port 10:00:00:00:00:00:00:00
  3       1      1030   No_Light X Disabled (Persistent)

我可以使用grep "^ *[0-9].*Online" ./myfile提取所有“在线”状态。然后,我如何提取每行的更多信息(例如,将每个值添加到$COLUMN变量)? 我想从第3列中提取所有数据,然后将结果视为数组,从每行中提取数据。

编辑:引用Jotne的答案,我做了类似的事情:

COLUMN=3
MYVARIABLE=($(awk '/Online/ {print $c}' c="$COLUMN" file))
echo ${MYVARIABLE[0]}

1 个答案:

答案 0 :(得分:2)

从eks专栏#3获取信息并在线:

COLUMN=3
awk '/Online/ {print $c}' c="$COLUMN" file
1010
1020