如何从纯文本文件中获取字符串[重复]
Posted
技术标签:
【中文标题】如何从纯文本文件中获取字符串[重复]【英文标题】:How to get a string out of a plain text file [duplicate] 【发布时间】:2017-05-02 20:47:36 【问题描述】:我有一个 .txt
文件,其中包含一个包含哈希和密码的列表,所以它看起来像这样:
00608cbd5037e18593f96995a080a15c:9e:hoboken
00b108d5d2b5baceeb9853b1ad9aa9e5:1c:wVPZ
在这个 txt 文件中,我只需要提取密码并将它们添加到一个新的文本文件中,这样我就有一个如下所示的列表:
hoboken
wVPZ
etc
etc
etc
etc
如何使用bash
、脚本语言或简单地使用文本编辑器来执行此操作?
【问题讨论】:
如果您的列表以:
分隔,您的列表似乎有 3 个信息,而不是两个。 Here's a very similar question 应该可以帮助您在 bash 中拆分文本文件中的行。之后,由您决定是否将 if 保存到新文件(可以使用 echo >> /path/file
之类的东西)。祝你好运。
【参考方案1】:
你也可以使用grep
:
$ grep -o [^:]*$ file
hoboken
wVPZ
-o
只打印匹配部分
[^:]
除了:
*
所有匹配字符
$
记录结束
【讨论】:
非常感谢,我通过像你这样的人在这个社区学到了很多东西!谢谢大家!!【参考方案2】:使用 sed,删除最多 :
的字符串:
sed 's/.*://' file
【讨论】:
【参考方案3】:我建议使用 awk 来获取文件的最后一列:
awk -F ':' 'print $NF' file
输出:
霍博肯 wVPZ【讨论】:
有趣的方法,我投票给你。事实上,您的答案可能是错误的,因为我们不知道密码是否总是在最后一列——也许在某些行中我们可能有一个额外的最后一列,所以密码不会被检索到。另一方面,我的回答假设密码之前的字符串只有:
作为分隔符,而不会出现在字符串本身上,这也可能是错误的。啊..我喜欢这样的现实生活问题,信息有限/不充分,它们很有挑战性,让你深入思考。
@JamilSaid:是的,可以澄清这个问题。也许第二列是一种salt。【参考方案4】:
鉴于您的示例,cut
的以下使用将实现您想要的:
cut -f3 -d':' /folder/file >> /folder/result
上面的代码将删除每行第二个冒号 :
之前(包括)的任何内容,这将适用于您的情况,给出您的示例。结果存储在/folder/result
。
编辑:我编辑了这个答案以使其更简单。
【讨论】:
非常感谢,我通过像你这样的人在这个社区学到了很多东西!以上是关于如何从纯文本文件中获取字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 从纯文本和 HTML 文本的混合创建 PDF [重复]