bash - Shell 脚本打印的值比我想要的多

标签 bash shell

这是脚本:

OLDIFS=$IFS
IFS=","
while read f1 f2 f3 f4
do
        echo $f4,
done < users_test.csv
IFS=$OLDIFS

目标文件如下所示:

Type,Name,Email,User ID,Signed up,Last seen,Web sessions,Country,City

我只需要获取第四个值(在用户 ID 下)。但通过我编写的脚本,我得到了第四个值及其后的所有内容。

我关注了this tutorial 。有什么注意事项吗?

最佳答案

您可以使用占位符读取变量_来使用第四列之后的所有内容,如下所示:

while IFS=, read -r f1 f2 f3 f4 _
do
   echo "$f4,"
done < users_test.csv

此外,无需全局设置 IFS 并保存它,因为您可以在 read 之前使用 IFS=, 并且它只会影响read调用。

关于bash - Shell 脚本打印的值比我想要的多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882185/

相关文章:

bash - 从 bash 脚本中的 URL 中提取文件名和路径

bash - 如果文件名在 Bash 中有前缀,则在句点之前去除字符

python - 使用python动态创建bash别名

linux - 在 bash shell 脚本中导出具有动态创建名称的变量

bash - 在 MacOS 中使 ZSH 默认 Shell

linux - 如何从文件中获取唯一事件?

mysql - 我可以在 Linux 中设置和读取 mysql 帐户密码作为环境变量吗?

linux - 为什么 ulimit 不能成功限制常驻内存,如何限制?

node.js - 从代码执行 shell 脚本

bash - Basename 无法接收带破折号的文件名