【问题标题】:How to delete end of String in CSV file shell script?如何删除 CSV 文件 shell 脚本中字符串的结尾?
【发布时间】:2016-11-14 00:11:31
【问题描述】:

我有一个 csv 文件,其中包含超过 10,000 个条目,称为 csv1.csv,我需要对其进行操作。我想更改第 11 列包含不同人电子邮件地址的所有值。 我现在在第 11 列中的内容:

电子邮件地址

Hi@yahoo.com
What@yahoo.com
Up@yahoo.com
lol@yahoo.com

期望的输出:

Hi
What
Up
lol

我还想保持所有其他 12 列相同,并使用重定向 > 放入另一个 csv 文件。所以基本上只取出@yahoo.com,但保留字符串前面的任何内容。任何帮助,将不胜感激!谢谢!

【问题讨论】:

  • 附言。 @yahoo.com 只是一个示例,但它们都有相同的电子邮件地址。

标签: bash shell csv awk sed


【解决方案1】:

希望这会有所帮助。

    cat csv1.csv | awk '{print $11}' | awk -F '@' '{print $1}' 

【讨论】:

    【解决方案2】:

    使用 awk 您可以像这样修改任何特定的列:

    awk 'BEGIN{FS=OFS=","} {sub(/@.+/, "", $11)} 1' file.csv > newfile.csv
    

    【讨论】:

    • 像魅力一样工作!谢谢!
    • 我刚刚意识到这也去掉了所有分隔文件中值的逗号。应该只是去掉“@yahoo.com”吧?
    • 完美!再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 2015-06-21
    • 2016-04-12
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多