我想用逗号,分割文本,而不是for foo in list中的空格.假设我有一个CSV文件CSV_File,里面有以下文本:

Hello,World,Questions,Answers,bash shell,script
...

我使用以下代码将其拆分为几个单词:

for word in $(cat CSV_File | sed -n 1'p' | tr ',' '\n')
do echo $word
done

它打印:

Hello
World
Questions
Answers
bash
shell
script

但我希望它用逗号而不是空格分割文本:

Hello
World
Questions
Answers
bash shell
script

如何在bash中实现这一点?

推荐答案

使用子shell替换来解析单词会取消所有将空格放在一起的工作.

试试看:

cat CSV_file | sed -n 1'p' | tr ',' '\n' | while read word; do
    echo $word
done

这也增加了并行性.在问题中使用子shell会迫使整个子shell过程在开始迭代答案之前完成.通过管道连接到子shell(如我的回答所示),它们可以并行工作.当然,只有当文件中有很多行时,这才重要.

Linux相关问答推荐

Microsoft ODBC Driver 18 for Python Docker Image,ARM设备;生成错误

为什么我的Linuxshell 程序有时找不到它刚刚创建的文件?

在不影响ROS2安装的情况下更新Ubuntu Linux中的CMake

AWK+向AWK导出值未传递

如何在 shell 脚本中自定义 SFTP 详细输出

从 ALSA USB 硬件设备获取 USB 设备文件路径

AWK 命令根据另一列中相同的值获取列中的不同值

使用sed命令将记录中的字符串替换为DD-MMM-YYYY日期格式

使用正则表达式捕获特定字符串

如何在bash中用另一个整数变量增加一个整数变量?

如何在非阻塞套接字上处理 OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE

仅在不存在时添加换行符

如何 grep 精确的文字字符串(无正则表达式)

命令列出除 . (点)和..(点点)

以原子方式移动目录

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

如何在 linux 或 unix 上找到用户的主目录?

编译 OpenGL 程序 GL/glew.h 缺失

如何自动启动 Solr?

如何制作和应用SVN补丁?