Linux 在同一个 CSV 文件中将一列拆分为两个不同的列

2023-12-12

您好,我有一个包含以下条目的 csv 文件

11
22
13
,,
aa
bb
cc
,,
ww
kk
ll
,,

请建议我一个 Linux 命令或脚本,它可以在同一文件中将列分成 3 列,如下所示

11  aa  ww
22  bb  kk
13  cc  ll

你可以这样做awk.

创建一个名为script.awk,内容如下:

BEGIN {
   line = 0; #Initialize at zero
}
/,,/ { #every time we hit the delimiter
   line = 0; #reset line to zero 
}
!/,,/{ #otherwise
   a[line] = a[line]" "$0; # Add the new input line to the output line
   line++; # increase the counter by one 
}
END {
   for (i in a )
      print a[i] # print the output
}

像这样运行文件:

awk -f test.awk < datafile 

Output:

$ cat datafile
11
22
13
,,
aa
bb
cc
,,
ww
kk
ll
,,
$ awk -f script.awk < datafile 
 11 aa ww
 22 bb kk
 13 cc ll

或者如果你只是想要一个一行, 做这个:

awk 'BEGIN{line=0;}/,,/{line=0;}!/,,/{a[line++]=a[line]" "$0;}END{for (i in a ) print a[i]}' datafile 

EDIT:

这将在字段之间添加逗号:

awk 'BEGIN{line=0;}/,,/{line=0;}!/,,/{a[line++]=a[line]?a[line]","$0:$0;}END{for (i in a ) print a[i]}' datafile
                                                              # ^ This is the part that I changed
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 在同一个 CSV 文件中将一列拆分为两个不同的列 的相关文章

  • 在bash中,是否有相当于“错误消息”的东西

    在 perl 中 您可以使用错误消息退出die some msg bash 中是否有等效的单个命令 现在 我正在使用命令来实现这一点 echo some msg exit 1 你可以很容易地自己推出 die echo 1 gt 2 exit
  • 如何使用我在 github 中发布的 bash 脚本执行 chsh?

    我有一个要点 我总是用它来在新服务器上安装我需要的软件包 http gist github com 4372049 http gist github com 4372049 我需要做的就是通过 ssh 在新服务器中输入以下内容 bash c
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 使用带有curl 的内部字段分隔符

    当我做 ls IFS l 我得到了我期望的输出 当我做 curl IFShttp www google com 我不 我是否误解了内部字段分隔符 如何在不使用任何空格字符的情况下运行curl 命令 您需要将变量放在大括号内 否则 shell
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 使用 posix shell 测试字符串中的正则表达式

    如何测试字符串是否与特定字符串匹配正则表达式与基本 无 bash 或任何其他 posix shell 脚本 在 if 语句中 您可以使用expr在 POSIX shell 中计算正则表达式的命令 s Abc expr s alpha 3 e
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 将文件从不同目录复制到公共目录

    我有很多目录 其中包含 c文件 我想复制全部 c使用 shell 脚本将不同目录中的文件复制到单个目录 find name c exec cp t tmp 启动当前目录中的所有项目 递归 获取名称结尾的项目 c 将这些项目复制到 tmp 如
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp

随机推荐

  • Haskell:基础阅读 Int

    目标是用 Haskell 编写 Nim 游戏作为学校作业 我是 Haskell 新手 当我尝试读取输入时会出现奇怪的行为 目标是读取两个整数 它不是打印第一条消息 然后提示 然后继续第二条消息 而是只打印两条消息 而我无法提供正确的输入 这
  • 从单独的线程类获取数据时不显示进度对话框

    我正在使用单独的线程从 url 获取 json 对象 但问题是我想在获得结果时显示进度对话框 我创建了一个进度对话框 并在线程执行之前和之后调用显示和关闭 但未显示进度对话框 这是我调用线程的方式 private void getRecor
  • 如何使用 web3js 发送 ERC20 令牌

    我目前使用的是 0 2x x 版本的 Web3 JavaScript API 我通过在 Solidity 中创建智能合约 在 REMIX IDE 上 来部署自定义 ERC20 代币 我安装了 MetaMask 并进行了测试https wal
  • 在引导 Angular2 应用程序之前发出 AJAX 请求 [重复]

    这个问题在这里已经有答案了 在我的 Angular2 应用程序中 我需要根据此调用的结果从 AuthenticationService 和引导应用程序调用某些函数 问题是 AuthenticationService 依赖于来自 Angula
  • 在 MATLAB 中计算实际频率值与 FFT 绘图索引之间的关系时出现混乱

    我知道有很多类似的问题 但我仍然无法找出答案 假设 MATLAB 中有时间信号 t 0 1 44100 1 和频率为 500Hz 的余弦信号 x cos 2 pi 500 t 现在 我正在尝试绘制使用以下方法获得的幅度谱fft信号 x 上的
  • 点击事件触发两次

    我试图在单击标签文本时运行某些函数 但单击事件触发了两次 HTML
  • 排除/覆盖 npm 提供的类型

    我有一个 npm 包 里面写得不好 打字也过时了 我已经编写了自己的类型 现在我想知道是否可以以某种方式从 npm 包中排除原始类型 它不是一个简单的接口扩展 原来的在这一点上基本上是垃圾 当然 使用 tsconfig json 中的排除列
  • 非常基本的 dcg prolog 语法

    我试图理解序言和定语从句语法 但我很难理解它们 我真的很想了解如何使用 dcg 语法 这里我举两个例子 第一个实际上是来自该论坛上另一个问题的代码 但还有一个附加问题 代码如下 s gt first operator second firs
  • Android studio:如何使用 ViewPager 添加选项卡

    我想在片段中添加带有 pagerview 可滚动 的选项卡 public class MyFragment extends Fragment private FragmentTabHost tabHost Override public V
  • Symfony2 无法正确保存会话

    我在 Symfony 在每个页面加载时创建一个新会话而不是跨请求携带数据时遇到问题 config yml 中会话部分的 auto start 设置为 false 常规 php 会话工作正常 只有在 symfony 中运行时我才会遇到问题 例
  • 最大值可以以两位数精度(2位精度)存储在Java浮点数中吗?

    我如何找到可以存储在 float 中的最大两位小数精度值 根据我的理解 在 32 位浮点数中 我们有 24 23 1 来存储不包括指数的数字 2 24 是我们可以存储的最大值 提前致谢 斯里拉曼 2 24 是您可以准确存储的最大整数 您可以
  • 单击时标签改变颜色

    我有一个 VBA Excel 用户单击标签 Active X 文本标签 来执行一些操作 标签属性为 BackStyle 透明 但当用户单击时 标签保持不透明 如白色或设置 BackColor 属性的任何内容 当用户点击标签时如何保持透明 不
  • 如何使用 Dask.array 高效地将大型 numpy 数组发送到集群

    我的本地计算机上有一个大型 NumPy 数组 我想将其与集群上的 Dask array 并行化 import numpy as np x np random random 1000 1000 1000 然而 当我使用 dask array
  • Entity Framework Core 中没有嵌套结果[重复]

    这个问题在这里已经有答案了 我在使用 EF 的 C 中有一个奇怪的行为 这是一个带有 EF Core 1 1 0 的 NET Core 项目 Microsoft EntityFrameworkCore SqlServer 1 1 0 Mic
  • 如何使用 Gson 库将 java.util.List 序列化为 Json?

    在我的 servlet 中 我有以下代码 response setContentType application json set json content type PrintWriter out response getWriter E
  • Truststore 和 Google Cloud Dataflow

    我需要使用信任存储在 Google Cloud Dataflow 中建立 SSL Kafka 连接 我可以从存储桶中提供这个 还是有办法将其存储在 本地文件系统 上 您可以使用KafkaIO Read withConsumerFactory
  • Pandas:通过两个分隔符将列拆分为多列

    我有这样的数据 ID INFO 1 A 2 B 2 C 5 2 A 3 B 4 C 1 3 A 1 B 3 C 2 我想将信息列分成 ID A B C 1 2 2 5 2 3 4 1 3 1 3 2 我可以使用一个分隔符来分割列 df A
  • Java 8 功能是否可用于 Java 绑定项目中的 Xamarin.Android?

    我有一个使用 Java 8 功能的 android 库项目 即通过 compileOptions sourceCompatibility JavaVersion VERSION 1 8 targetCompatibility JavaVer
  • 为什么 == 有时对 Java 中的字符串起作用? [复制]

    这个问题在这里已经有答案了 我有以下代码 Circle c1 new Circle Circle c2 new Circle System out println c1 c2 哪个输出False 正如预期的那样 这是因为c1 and c2是
  • Linux 在同一个 CSV 文件中将一列拆分为两个不同的列

    Closed 这个问题是无关 目前不接受答案 您好 我有一个包含以下条目的 csv 文件 11 22 13 aa bb cc ww kk ll 请建议我一个 Linux 命令或脚本 它可以在同一文件中将列分成 3 列 如下所示 11 aa