我编写了以下代码,将我的 csv 文件(具有固定的列数,但没有固定的行数)作为数组读入我的脚本中。我需要它是一个 shell 脚本。
usernames x1 x2 x3 x4
username1, 5 5 4 2
username2, 6 3 2 0
username3, 8 4 9 3
My code
#!/bin/bash
set oldIFS = $IFS
set IFS=,
read -a line < something.csv
我用过的另一个选择是
#!/bin/bash
while IFS=$'\t' reaad -r -a line
do
echo $line
done < something.csv
对于两者,我都尝试了一些测试代码来查看数组行的大小,第一个行的大小似乎为 10,但数组仅输出用户名。对于第二个,我的大小似乎为 0,但数组输出整个 csv。
非常感谢帮助!
您可以考虑使用AWK
与正则表达式FS
像这样的变量:
awk 'BEGIN { FS=",?[ \t]*"; } { print $1,"|",$2,"|",$3,"|",$4,"|",$5; }'
or this
awk 'BEGIN { FS=",?[ \t]*"; OFS="|"; } { $1=$1; print $0; }'
($1=$1
需要用新的 OFS 重建 $0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)