Linux 根据某些条件(命令行)从文件中提取特定行

Linux 根据某些条件(命令行)从文件中提取特定行,linux,shell,ubuntu,command-line,terminal,Linux,Shell,Ubuntu,Command Line,Terminal,我在一个文件中有一些内容(实际上是一个巨大的文件),如下所示,是否有任何方法可以通过命令行提取上次访问值大于某个值(比如1464682814617)的行 "url":"https://www.google.co.in/","title":"Google","lastAccessed":1464675219253,"hidden":false,"" "url":"https://www.google.com/intl/en/mail/help/about.html","title":"Gmail

我在一个文件中有一些内容(实际上是一个巨大的文件),如下所示,是否有任何方法可以通过命令行提取上次访问值大于某个值(比如1464682814617)的行

"url":"https://www.google.co.in/","title":"Google","lastAccessed":1464675219253,"hidden":false,""
"url":"https://www.google.com/intl/en/mail/help/about.html","title":"Gmail - Free Storage and Email from Google","persist":true,"lastAccessed":1464679910117,"hidden":false
"url":"https://www.facebook.com/","title":"Facebook - Log In or Sign Up","persist":true,"lastAccessed":1464682240507,"hidden":false
"url":"https://www.linkedin.com/","title":"World’s Largest Professional Network | LinkedIn","lastAccessed":1464682814617,"hidden":false,""
"url":"http://stackoverflow.com/","title":"Stack Overflow","persist":true,"lastAccessed":1464682191245,"hidden":false
"url":"http://www.indeed.co.in/?r=us","title":"Job Search India | one search. all jobs. Indeed","docIdentifier":5,"persist":true,"lastAccessed":1464674503732
"url":"https://www.google.com/intl/en/mail/help/about.html","title":"Gmail - Free Storage and Email from Google","persist":true,"lastAccessed":1464674739300,"hidden":false
"url":"http://stackoverflow.com/","title":"Stack Overflow","persist":true,"lastAccessed":1464674774653,"hidden":false
旁注: 我正在开发一个节点应用程序。通过命令行执行操作会更快,或者将其转换为json obj,然后查找正确的记录


如果您有任何帮助/建议,我们将不胜感激。请提前感谢。

带着gawk:

 awk '{if ( gensub(/.*lastAccessed":([0-9]*).*/,"\\1","g",$0) > 1464682814617) {print}}' File
gensub
将提取字符串
“LastAccess:”
后的数字,并将其与限制值进行比较,如果值大于限制值,则打印行

如果
awk
sed
不可用:

while read line; do 
    LASTA=$(echo "$line"| grep -o '"lastAccessed":[0-9]*'  | cut -d: -f2) ;
    if [ "$LASTA" -gt 1464682814617 ] ; then
        echo  $line
    fi
done < File
读行时
;做
LASTA=$(回显“$line”| grep-o'”lastAccessed:[0-9]*'| cut-d:-f2);
如果[“$LASTA”-gt 1464682814617];然后
回音$线
fi
完成<文件
呆呆地看着:

 awk '{if ( gensub(/.*lastAccessed":([0-9]*).*/,"\\1","g",$0) > 1464682814617) {print}}' File
gensub
将提取字符串
“LastAccess:”
后的数字,并将其与限制值进行比较,如果值大于限制值,则打印行

如果
awk
sed
不可用:

while read line; do 
    LASTA=$(echo "$line"| grep -o '"lastAccessed":[0-9]*'  | cut -d: -f2) ;
    if [ "$LASTA" -gt 1464682814617 ] ; then
        echo  $line
    fi
done < File
读行时
;做
LASTA=$(回显“$line”| grep-o'”lastAccessed:[0-9]*'| cut-d:-f2);
如果[“$LASTA”-gt 1464682814617];然后
回音$线
fi
完成<文件

但是gensub是要安装的外部软件,是否有通过外部软件执行此操作的命令
gensub
gawk
中的内置功能,不是一个外部工具。是的,我们必须先安装gawk,然后才可以使用gensubcheck我的编辑来处理
grep
cut
bash
非常好的解释。但是gensub是一个外部安装软件,是否有外部软件执行此操作的命令
gensub
gawk
中的内置功能,而不是外部工具。是的,我们必须先安装gawk,然后才可以使用gensubcheck编辑,只需
grep
cut
bash
非常好的解释。