【问题标题】:split a spreadsheet column into 3将电子表格列拆分为 3
【发布时间】:2014-04-20 06:05:57
【问题描述】:

我有一个包含 3 列的电子表格。公司名称/联系人姓名/电子邮件地址。在 Contact 字段中,我需要将“Mr. John Doe”更改为“Mr”“John”“Doe”。

我已经学会了如何使用以下方法找到先生或夫人:

猫商人.csv | grep -E "先生|夫人"

我对这个过程的思考越多,我认为最好抓住整个字段(使用 CSV 格式的文件),然后根据空格分解该字段。我理解这个概念,它会涉及到“cut”的一些使用,但我对它的了解还不够(还)无法理解如何实现这一点。

【问题讨论】:

  • 联系人字段的格式是否始终为“先生”?名字姓氏'?其他领域有空格吗?请提供示例输入和所需的输出。
  • 好的,我注意到该字段主要是我的初始报价,但也有一些变化。 Mr./Mrs./Dr./Smt./(甚至是全名),然后有些有首字母。我可以看到断开标题,断开姓氏,一切都可能是“名字”。
  • @vishnurajv 没错。 “Mr. John Doe”到“Mr”“John”“Doe”(以为我已经这样做了……已经?)。

标签: csv spreadsheet break cut


【解决方案1】:

使用这个脚本。

cat merchent.csv | cut -d "," -f2 | while read; do
IFS='. ' read -ra ADDR <<< "$REPLY"
for i in "${ADDR[@]}"; do
    # process "$i"
        echo -ne "$i "
done
echo " "
done

我猜你的数据是这样的

business_name1,contact_name1(in the format Mr. John Doe),email_address1
business_name2,contact_name2(in the format Mr. John Doe),email_address2

【讨论】:

  • 这看起来很酷,但我是否必须将“IN”部分换成“cat merchent.csv | grep -E """ 之类的东西?我需要在这个脚本中输入一个 cvs 文件。
  • 使用cat merchent.csv | cut -d "," -f2
  • 输出是什么?而且我确实相信我做错了....'code' IN="cat merchent.csv | cut -d "," -f2" IFS='。 ' read -ra ADDR
  • 很遗憾,我不能,我正在使用的文件中包含机密的客户信息。
  • 把你的代码放在'youcodehere'中。而不是从键盘输入 ' 只需从您输入评论时出现的底部指令复制粘贴!
猜你喜欢
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
相关资源
最近更新 更多