【发布时间】:2018-04-26 10:34:37
【问题描述】:
我正在尝试编写一个 Linux bash 脚本,它可以帮助我从文本文件中生成一些我需要的统计信息。在我使用的文本文件中假设以下格式:
"string : pathname1 : pathname2 : pathname3 : … pathnameN"
其中路径名“i”是我在其中找到特定字符串的文件的完整路径。例如,这样的文件可能如下所示:
logile.txt
string : "version" pathname1: /home/Desktop/myfile.txt pathname2 : /usr/lib/tmp/sample.txt
string : "user" pathname1 : temp1/tmpfiles/user.txt pathname2 : newfile.txt pathname3 : /Downloads/myfiles/old/credentials.txt
string : "admin" pathname1 :
string: "build" pathname1 : Documents/projects/myproject/readme.txt pathname2
: Desktop/readmetoo.txt
在这个例子中,我希望我的 bash 脚本通知我,我总共搜索了 4 个单词(版本、用户、管理员、构建),并且在大多数文件中找到的单词是“用户”,在 3 个文件中找到。使用“awk”命令是个好方法吗?我不熟悉 bash 脚本,所以任何帮助都会很有用!谢谢!
【问题讨论】:
-
此
logile.txt的格式不一致。logile.txt中的行格式为string : pathname1 :pathname2 ...或string: pathname1: pathname2:或string: pathname1: path pathname2: path(请注意双点和单词之间的空格)? -
@KamilCuk 感谢通知,我编辑了格式!
-
Stack Overflow 不是代码编写服务。请出示您的代码。由于 Stack Overflow 向您隐藏了关闭原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
虽然说“使用其他东西”有点糟糕,但我会这样做 - 虽然你可以用 bash 做很多事情(如下面的 Kamil 演示),但在 Perl 中做同样的事情,Python 或 Ruby 会容易得多。
标签: linux bash shell unix scripting