您如何将具有多个空格的字段分开并将它们存储在数组中?

zou*_*hai 8 bash sed awk tr cut-command

在我的文件中mytxt

field1                    field2
------                    -------
this are numbers          12345
this letters              abc def ghi 
Run Code Online (Sandbox Code Playgroud)

假设我想将第一个字段存储在数组中:

i=0
while read line; do 
    field_one[$i]=$(echo $line | awk '{print $1}')
    echo ${field_one[i]}  
    ((i++))
done < mytxt
Run Code Online (Sandbox Code Playgroud)

这会给我this两次输出。

关于如何将它们存储在数组中并获得输出的任何想法:

this are numbers
this letters
Run Code Online (Sandbox Code Playgroud)

我曾尝试更改分隔符、压缩空格和使用sed,但我被卡住了。任何提示将不胜感激。

我的最终目标是将两个字段存储在一个数组中。

Pab*_*chi 2

根据此来源移动我的评论,以仅显示基于多个空格的表上的特定列:

awk -F '  +' '{print $2}' mytxt.txt  # Or with -F ' {2,}'
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用双引号,这将不起作用

我发现使用以下方法查找重复项特别有用:

somelist... | sort | uniq -c | sort -rn | grep -vP "^ +1 " | awk -F '  +' '{print $3}'
Run Code Online (Sandbox Code Playgroud)