我将许多单独序列化的 PHP 数组存储到一个文件中。文件的每一行都包含一个序列化数组。例如:
a:2:{s:4:"name";s:8:"John Doe";s:3:"age";s:2:"20";}
a:2:{s:4:"name";s:8:"Jane Doe";s:3:"age";s:2:"15";}
a:2:{s:4:"name";s:12:"Steven Tyler";s:3:"age";s:2:"35";}
a:2:{s:4:"name";s:12:"Jim Morrison";s:3:"age";s:2:"25";}
a:2:{s:4:"name";s:13:"Apple Paltrow";s:3:"age";s:2:"75";}
a:2:{s:4:"name";s:12:"Drew Nickels";s:3:"age";s:2:"34";}
a:2:{s:4:"name";s:11:"Jason Proop";s:3:"age";s:2:"36";}
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
是否可以 grep 该文件以获取以下模式:"name"*"*"
然后,我想根据第二个通配符的内容对找到的行进行排序。
我不确定 grep 是从哪里来的,因为你的所有行似乎都与模式匹配。但无论如何,您可以sort单独使用它来对示例输入进行排序:
sort -t\" -k4 data.txt
Run Code Online (Sandbox Code Playgroud)
它忽略了文本的“真实”结构,只是将其视为"分隔符,因此它既快速又肮脏,但它可以按照您想要的方式进行排序。这是在行动中:
如果您确实需要 grep for "name".*".*",您可以先执行此操作并将输出通过管道传输到命令sort。
| 归档时间: |
|
| 查看次数: |
4607 次 |
| 最近记录: |