用于解析文件( csv )并逐行处理的 Shell 脚本[重复]

2024-04-27

您好,需要一个 shell 脚本来解析 csv 文件 - 逐行解析,然后逐个字段]

该文件将如下所示

X1,X2,X3,X4
Y1,Y2,Y3,Y4

我需要提取这些 X1,X2....

我写了一个脚本,但如果行超过一行,它就会失败。


我就是这样做的。

首先我设置 IFS 环境变量来告诉read“,”是字段分隔符。

export IFS=","

鉴于文件“输入”包含您提供的数据,我可以使用以下代码:

cat test | while read a b c d; do echo "$a:$b:$c:$d"; done

快速回顾一下上面发生的事情。cat test |读取文件并将其通过管道传输到while. while运行之间的代码do and done while read返回真。read从标准输入读取一行并根据 $IFS 的值将其分成变量(“a”、“b”、“c”和“d”)。最后echo只显示我们读取的变量。

这给了我以下输出

X1:X2:X3:X4
Y1:Y2:Y3:Y4

顺便说一句,BASH 手册 http://www.gnu.org/software/bash/manual/bashref.html总是很好的阅读。每次阅读它你都会学到新东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于解析文件( csv )并逐行处理的 Shell 脚本[重复] 的相关文章

随机推荐

  • Groovy 中的 __LINE__ 功能

    可以通过以下方式获取当前行号 LINE 在 Ruby 或 Perl 中 例如 print filename FILE line LINE Groovy 中有同样的功能吗 不能直接获取 但您可以通过异常 或可抛出 堆栈跟踪来获取它 例如 St
  • 如何使用 C# 获取打印作业状态

    我可以打印文档 但不知道如何获取其状态 我查阅了很多资源 MSDN http support microsoft com kb 322091 检查工作状态的链接 https stackoverflow com questions 55637
  • 如何在查询中获取 MySQL 状态

    是否可以在 MySQL 查询中使用服务器状态变量 我可以从 显示状态 中看到各种指标 但如何计算派生值 例如查询缓存命中率 show global status like Qcache inserts show global status
  • 如何将 NSArray 元素连接到 NSString 中?

    给定一个 NSString 的 NSArray 是否有一种快速方法将它们连接成一个 NSString 带有分隔符 NSArray stuff NSString combinedStuff stuff componentsJoinedBySt
  • 如何使用 jQuery 循环 JSON 文件

    我正在尝试循环下面的 JSON 文件 statements subject A predicate B object C subject D predicate E object F 正如您所看到的 有两个主语 两个谓语和两个宾语 例如 我
  • 正则表达式,获取两个关键字之间的整个字符串

    我正在做一些输出解析 我需要从两个单词之间抓取一大块文本 例如 如果我正在解析文本 Hi this is an example 我希望能够指定我的两个单词是 Hi 和 example 然后我将取回字符串 this is an 我知道正则表达
  • SQL 中的模糊分组

    我需要修改 SQL 表以对稍微不匹配的名称进行分组 并为组中的所有元素分配标准化名称 例如 如果初始表如下所示 Name Jon Q John Q Jonn Q Mary W Marie W Matt H 我想创建一个新表或向现有表添加一个
  • 比较 Java 中的两个基元数组?

    我知道 Arrays deepEquals Object Object 但这不适用于原始类型 由于数组和自动装箱的限制 请参阅这个相关帖子 https stackoverflow com questions 517751 java gene
  • 在智能手机上选择尺寸为正常尺寸

    在我的网络应用程序中 我创建了一个选择size 5 正确显示 您可以从图像中看到 当我在移动设备上打开应用程序时 我得到的是这个维度 您如何看到尺寸不正确 我通过代码而不是CSS设置尺寸 我再说一遍 这在桌面上有效 但在移动设备上不起作用
  • Swift 3 - 扩展字典数组

    我有这一系列字典 var dicts key1 value1 key2 value2 key1 value3 key2 value4 我应该如何延长Array这样我就有这个功能 dicts values of key1 result val
  • 当隐藏箭头对象时,如何以编程方式识别在图表上绘制向上/向下箭头?

    我知道如何在图表上绘制对象箭头 我通常这样做 ObjectCreate 0 prevHigh OBJ ARROW DOWN 0 Time 0 High highestCandle ObjectSetInteger 0 prevHigh OB
  • 在 Xcode 7 中下载适用于 10.9 和 10.10 的 Mac OS X SDK

    是否可以使用 Xcode 7 在 OS X 10 11 上下载并针对 Mac OS X 10 9 和 10 10 SDK 进行构建 是的 这是可能的 Xcode遗产 https github com devernay xcodelegacy
  • Emacs:如何拉动最后拉动的文本,无论后续杀戮如何?

    我经常发现自己在完成一些杀戮后反复猛拉一些东西 它变成了一个像这样的过程 C y C y M y C y M y M y C y M y M y M y 每次我删除一些文本时 它都会将第一个删除推回到删除环中 以便我需要循环遍历所有删除以返
  • 在android中启动基于文件的Activity

    我正在开发一个应用程序 它列出文件夹中的文件 在 ListView 中 当用户单击其中一个项目时 如果它是一个文件 那么我想启动一个可以处理它的活动 如果有的话 或者如果没有则显示某种错误消息 我怎样才能做到这一点 当然 这不是全部 但我如
  • find 命令的“exec”功能可以在后台启动程序吗?

    我想做这样的事情 find iname Advanced Linux Program exec kpdf 可能的 还有其他类似的方法吗 首先 它不会像你输入的那样工作 因为 shell 会将其解释为 find iname Advanced
  • 这个具有多个值(变量)的 return 语句如何工作? [复制]

    这个问题在这里已经有答案了 我试图了解 C 函数中按值传递和返回是如何发生的 我发现一段代码如下 include
  • 如何在样式定义中排除包含所有子级的类

    我有一个像这样的文件 div div class abc div div div div 我想要做的是将样式仅应用于第一个 div 我尝试使用div not abc abc div not abc not abc div not abc d
  • Sitecore Workbox,显示名称的项目字段?

    默认情况下 Sitecore 工作箱显示项目名称 我想显示 标题 字段 自定义字段 我怎样才能做到这一点 我有一个类似的要求 客户需要 Workbox 显示项目的 路径 而不是其名称 问题是他们的许多物品具有相同的名称 因此很难区分物品 不
  • 在Java程序中打开Windows虚拟键盘

    我想在按钮中创建一个事件 当我单击按钮时 我想打开 Windows 虚拟键盘 你能帮我看一下代码吗 谢谢您的合作 此致 您可以使用 getRuntime 来执行它 import java io IOException public clas
  • 用于解析文件( csv )并逐行处理的 Shell 脚本[重复]

    这个问题在这里已经有答案了 您好 需要一个 shell 脚本来解析 csv 文件 逐行解析 然后逐个字段 该文件将如下所示 X1 X2 X3 X4 Y1 Y2 Y3 Y4 我需要提取这些 X1 X2 我写了一个脚本 但如果行超过一行 它就会