在我的文件中mytxt
:
field1 field2
------ -------
this are numbers 12345
this letters abc def ghi
假设我想将第一个字段存储在数组中:
i=0
while read line; do
field_one[$i]=$(echo $line | awk '{print $1}')
echo ${field_one[i]}
((i++))
done < mytxt
那会给我this
两次输出。
关于如何将它们存储在数组中并获得输出的任何想法:
this are numbers
this letters
我尝试过更改分隔符、压缩空格和使用sed
,但我被卡住了。任何提示将不胜感激。
我的最终目标是将这两个字段存储在一个数组中。
使用 colrm 从文件中删除列。
(Bash 内置版本):
您可以将 bash 内置函数
mapfile
(akareadarray
)与一个回调一起使用,该回调使用参数扩展来修剪以两个空格开头的最长尾随子字符串:前任。给定
然后
这个答案的重点是从数组中删除两条标题线以匹配输出要求。
这是脚本:
希望代码和注释是不言自明的。如果没有,请不要犹豫发表评论。
如果只有一个空格将两列隔开,该脚本仍然有效,而其他一些答案将中断:
移动我的评论,基于这个来源,只在基于多空格的表上显示一个特定的列:
请注意,如果您使用双引号,这将不起作用。
我发现使用以下方法查找重复项特别有用: