【问题标题】:Count lines and text strings in muliple csv files in linux and pipe to a csv file在linux中计算多个csv文件中的行和文本字符串并通过管道传输到csv文件
【发布时间】:2016-04-22 07:13:20
【问题描述】:

我将如何遍历包含多个 cvs 文件的文件夹和:

  1. 计算非空行数
  2. 计数行包含: 一个。 “暂停” 湾。 “死亡” C。 “初始化”

一个指向 csv 文件格式的管道:

文件名“行数”“超时”“死亡率”“初始化”

在 Linux 的命令行中?

编辑:

wc -l ./*.csv > result.txt

并且能够获得行数,但不确定是否如上所述查找字符串。

我根据shellcheck.net编辑得到了这个:

#!/bin/bash

find ./ -type f -exec cat {} > /tmp/file.tmp \;
cmd /tmp/file.tmp | grep Time Out | grep Mortality | grep Init > /tmp/file2.tmp
wc -l /tmp/file.tmp
rm /tmp/file.tmp

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。请记住,我们不是来做您的代码工作的。但是,如果您向我们展示您进行了一些研究并开始编写代码,我们将帮助您朝着正确的方向前进。
  • 您的问题不清楚 - 您需要更清楚地思考您的意思。例如,您说要计算包含abc 的行,但没有说明您的意思是所有三个 需要出现在行上还是任何一个 个。回答者假设您希望所有三个都在同一行。

标签: linux shell csv


【解决方案1】:

您可以使用此脚本(可能不适合定期使用):

!/bin/bash

find ./ -type f -name "*.csv" -exec cat {} \; | grep Time Out | grep Mortality | grep Init > /tmp/file.tmp
wc -l /tmp/file.tmp
rm /tmp/file.tmp

【讨论】:

  • 它从 30 500KB 大小的文件中生成一个 13 GB 的文件
  • 超时、死亡率和初始化应在“”中
  • 这真的不是很好。尝试通过shellcheck.net 运行它。
  • 不知何故我会认为您当时只浏览了一个文件,然后将计数结果通过管道传输到 csv 文件
  • 我稍微改进了“脚本”,这样您就不必存储整个数据并更快地获得结果,但我相信还有更好的方法来做到这一点......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
  • 2022-01-06
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
相关资源
最近更新 更多