【问题标题】:osx terminal command to split text file into 2-column csv fileosx 终端命令将文本文件拆分为 2 列 csv 文件
【发布时间】:2017-03-14 14:27:00
【问题描述】:

我有一个文本文件,并且在每一行上至少出现一次(通常更多)此文本模式:

<br>

所以示例行文本将是:

textbefore<br>textafter<br>lasttext<br>

在整个文本中可以有多个“,”字符的实例。

作为输出,我想要一个有效的 2 列逗号分隔文本文件。

第一列应该是第一个&lt;br&gt;之前的文本 第二列应该是第一个&lt;br&gt;之后的所有文字

所以任何一列都不应该包含第一个&lt;br&gt;

如何使用 OSX 终端中可用的任何工具来执行此操作?

【问题讨论】:

  • 已编辑问题,但不确定我的意思是否更清楚。我想我在问这两列是否都应该在它们周围都有双引号,以便里面的任何逗号都不会被读取为列分隔符?如果这是真的,如何在列周围添加引号。
  • 是的,你确实明白我在说什么,非常感谢
  • 是的,解决方案效果很好。很抱歉之前没有接受它,我不知道该怎么做。必须点击灰色问号才能接受对我来说并不直观。

标签: macos csv split terminal


【解决方案1】:

更新答案

仍然不确定你的意思,但也许是这样的:

sed 's|^|"|; s|<[Bb][Rr]>|","|; s|$|"|' file

样本输出

"textbefore","textafter<br>lasttext<br>"

那个命令说... “在每一行的开头加上双引号。用双引号,逗号,双引号替换该行的第一个&lt;br&gt;。在每行的末尾加上双引号。”


原答案

您可以使用sed

sed 's|<br>|,|' yourFile

样本输出

textbefore,textafter<br>lasttext<br>

【讨论】:

  • 如何处理在实际文本中散布大量“,”字符这一事实?
  • @irantheworldforaday 请通过单击原始问题下方的edit 举例说明您的意思以及您希望如何处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 2019-08-21
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多