Macos 搜索并删除具有可变参数的字符串
我需要在OSX上使用命令行从文本文件中删除字符串 字符串将具有一些永久特征,但具有任意数字 我想删除以下各项的所有变体:-Macos 搜索并删除具有可变参数的字符串,macos,bash,perl,sed,terminal,Macos,Bash,Perl,Sed,Terminal,我需要在OSX上使用命令行从文本文件中删除字符串 字符串将具有一些永久特征,但具有任意数字 我想删除以下各项的所有变体:- [370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h] 此字符串具有不同的值,但我想删除它,只在标有以下标签的部分中保留相关信息:- PAttern1 : Code : CodeHash : Result : 需要执行以下模拟过程 for each line{ if stri
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
此字符串具有不同的值,但我想删除它,只在标有以下标签的部分中保留相关信息:-
PAttern1 :
Code :
CodeHash :
Result :
需要执行以下模拟过程
for each line{
if string contains [%d%d%d.%d%d Kkey/s][total %d%d%d%d%d%d%d][Prob %d.%d%][%d%d% in %d.%dh] (where "%d" is decimal value){
delete string and line
}
else if !contains {
move down 1 line.
}
{
对于下面的文本,只有模式和散列应该保存到文本文档中
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
PAttern1: i want to keep all the text after pattern and all the code until the next line of processing including hash
Code : aksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsd
CodeHash : e3287cb701f336a628885e66d17e38f2
Result : D0B6789D4E0ACF39A8C24B424C0060FFFF2DA857
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
PAttern2: i want to keep all the text after pattern and all the code until the next line of processing including hash
Code : qwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrq
CodeHash : 05bfabd43ff6c85a8fa2d3347d828c4b
Result : 165B6CA902E567959C9BB599FABEB3998B21E31F
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
[370.15 Kkey/s][total 2999999][Prob 0.0%][50% in 7.8h]
[370.02 Kkey/s][total 3000368][Prob 0.0%][50% in 7.8h]
[323.02 Kkey/s][total 3001368][Prob 0.0%][50% in 7.8h]
[389.02 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[379.06 Kkey/s][total 3003368][Prob 0.0%][50% in 7.8h]
[300.01 Kkey/s][total 3004368][Prob 0.0%][50% in 7.8h]
[379.02 Kkey/s][total 3005368][Prob 0.0%][50% in 7.8h]
[279.02 Kkey/s][total 3006368][Prob 0.0%][50% in 7.8h]
[179.02 Kkey/s][total 3007898][Prob 0.0%][50% in 7.8h]
将生成的文本文档保留如下所示:-
PAttern1 : i want to keep all the text after pattern and all the code until the next line of processing including hash
Code : aksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsdaksjhdakjsdhakshdkasdhkashkjahsd
CodeHash : e3287cb701f336a628885e66d17e38f2
Result : D0B6789D4E0ACF39A8C24B424C0060FFFF2DA857
PAttern2 : i want to keep all the text after pattern and all the code until the next line of processing including hash
Code : qwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrqgfqwfufiyfoqywfofqwytrq
CodeHash: 05bfabd43ff6c85a8fa2d3347d828c4b
Result : 165B6CA902E567959C9BB599FABEB3998B21E31F
我使用sed删除单个字符,如下所示:-
sed -i '' 's/%/\ /g' file.txt
sed -i '' 's/\[/\ /g' file.txt
sed -i '' 's/]/\ /g' file.txt
sed -i '' 's/Kkey\/s/\ /g' file.txt
虽然这适用于符号,但我无法猜出数字或sed out数字,因为它们在重要字符串中,sed会替换它
考虑到上述常规,您将如何处理此问题
非常感谢您提供的任何帮助您可以将
grep
与-v
一起使用:
grep -v 'Kkey/s.*total.*Prob' < input > output
grep-v'Kkey/s.*total.*Prob'output
或者,如果您也想删除空行:
egrep '^[ \t]*(PAttern1|Code|CodeHash|Result) : ' < input > output
egrep'^[\t]*(PAttern1 | code | CodeHash | Result):'output
Perl命令行解决方案:
perl -ne 'print if /\S/ && !m|\[\d+\.\d+ Kkey/s]\[total \d+]\[Prob \d+\.\d+%]\[\d+% in \d+\.\d+h]|' your_input_file > your_output_file
白鹭似乎效果最好。我可以内联使用它,这样它就不需要创建新文件了吗?如果我执行<~/Desktop/file.txt>output ~/Desktop/file.txt,则会留下一个空白文件。不能执行内联操作,但可以写入临时文件,然后替换原始文件:
egrep'^[\t]*(PAttern1 | code | CodeHash | Result):'<~/Desktop/file.txt>.output.txt;mv~/Desktop/file.txt~/Desktop/file.txt.backup;mv.output.txt~/Desktop/file.txt
iv刚刚注意到,在我正在使用的实际示例中,头后面有一行新行,因此脚本失败<代码>模式1:示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1示例模式1有-A
和-B
开关,这样你可以在后面或前面拉线。这似乎没有效果,这似乎不太可能。当我运行它时,我会得到一个输出文件,其中包含您想要的行。如果它对你不起作用,那么也许你的环境有一些不寻常的地方,你没有告诉我们。