【问题标题】:How to split egrep print result in to multiple columns and export to a CSV file如何将 egrep 打印结果拆分为多列并导出到 CSV 文件
【发布时间】:2015-08-25 01:06:41
【问题描述】:

我正在尝试在我的 xcode 项目中查找所有硬编码字符串并将结果导出到 csv 文件。我使用的以下脚本为我提供了所有值列表以及文件名作为一个字符串(即/path/classA.m @“Value”),当我将相同的结果导出到 csv 文件时,显然所有内容都被复制到一列.

find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --only-matching "($KEYWORDS).*\$" > myFile.csv

但我正在尝试将结果导出到 csv,以便我想在列下查看文件名并在其他列中查看硬编码值。

我是脚本世界的新手。请帮我解决这个问题

【问题讨论】:

  • 添加一些示例输出
  • /Users/VRK/Documents/iPhone/MyProj/MyProj/AppDelegate.m:@"abc"

标签: python bash shell csv unix


【解决方案1】:
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --only-matching "($KEYWORDS).*\$" | sed 's/:/,/' > myFile.csv

Csv 表示逗号分隔值

在您的情况下,使用 , 搜索并替换第一次出现的 : ,因为文件和值由 : 分隔。

【讨论】:

  • 感谢您的回答。我已经粘贴了我通过脚本获得的示例 o/p。 /Users/VRK/Documents/iPhone/MyProj/MyProj/AppDelegate.m:@“abc”。并在添加你的脚本后获得相同的 o/p。
  • 添加额外的 sed 命令将 op 转换为 , 分隔的 csv 文件不起作用?
  • Mahesh,问题是当我尝试将此输出导出到 csv 时,整个结果被复制为一个单元格。但我希望将此文本分成两部分(即两个单元格),其中文件名可以复制到一个单元格,@“abc”到另一个单元格
  • 更新了替换的答案:用,
  • 您能否添加更多信息,说明为什么这有助于回答问题?
猜你喜欢
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 2022-12-11
相关资源
最近更新 更多