bash - 将单列文件转换为多列

标签 bash unix command-line multiple-columns

基本上,我想将一列文件转换为由行数指定的多列文件。

我不想重新发明轮子。在编写自定义脚本之前,我想确定是否有 unix 命令/或执行此操作的标准方法。

例如,假设我有以下文件:

$cat input.txt
tom
jack
kim
bart
foo
bar

我想把它变成 3 行文件

$ cat input.txt | my_script --every=3 --delimiter=tab
tom bart
jack foo
kim bar

或具有不同定界符的 2 行文件:

$ cat input.txt | my_script --every=2 --delimiter=,
tom,kim,foo
jack,bart,bar

最佳答案

使用 xargs 怎么样?

每行两条记录:

$ xargs -n2 < file
tom jack
kim bart
foo bar

每行三个记录:

$ xargs -n3 < file
tom jack kim
bart foo bar

关于bash - 将单列文件转换为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004727/

相关文章:

linux - Bash 混合 for 循环和 if then 表达式给出不好的结果

XMLStarlet 不删除元素

ruby-on-rails - ZSH:找不到命令:rails

linux - linux 中的多个 sed -e 命令用法

linux - 从文件名中提取唯一标识

java - 将文件作为命令行参数传递并读取其行

linux - Linux 与 Windows 中的 WMIC 差异

linux - 在 linux 中创建可执行程序的路径时遇到问题

c - 在 C 程序中的 Xcode 中提供命令行参数

linux - 在linux中覆盖环境变量