linux有什么命令可以提取指定的字符串? 如何操作

发布于 2022-09-05 10:41:53 字数 506 浏览 17 评论 0

有个日志文件如下:

// demo.log
"time":"2017","id":"AA2342ds34234","content":"asdfasdfafwerfasdf"
"time":"2017","content":"asdfasdfafwerfasdf","id":"AAd234s234234"
"time":"2017","id":"AA23as423d4234","content":"asdfasdfafwerfasdf"
"id":"BB234234234","content":"asdfasdfafwerfasdf","time":"2017"

我想只输出id的值:
例如这样

AA2342ds34234
AAd234s234234
AA23as423d4234
BB234234234

有类似功能的的命令有awk, gawk,sed, grep等,看了半天也没找到我想要的这种功能的示例。
请问有什么命令可以提取,麻烦给个例子,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蔚蓝源自深海 2022-09-12 10:41:53
grep -Po '(?<="id":")[^"]+' demo.log
awk -F'[,:]' '{gsub(/"/,"");for(n=0;n++<NF;)if($n=="id")print $++n}' demo.log
sed 's/.*"id":"\([^"]\+\)".*/\1/' demo.log
陌路终见情 2022-09-12 10:41:53
cat demo.log  | sed 's/.*"id":"\([0-9]*\)".*/\1/'
回梦 2022-09-12 10:41:53
javascript@linux:~/test$ cat demo.log
"time":"2017","id":"234234234","content":"asdfasdfafwerfasdf"
"time":"2017","content":"asdfasdfafwerfasdf","id":"234234234"
"time":"2017","id":"234234234","content":"asdfasdfafwerfasdf"
"id":"234234234","content":"asdfasdfafwerfasdf","time":"2017"
javascript@linux:~/test$ sed -r 's/.*"id":"([0-9]+)".*/\1/g' demo.log
234234234
234234234
234234234
234234234
趁微风不噪 2022-09-12 10:41:53

awk是个比较经典的文本分析工具,支持二次编程,我做数据采集是经常使用它!
云南十大名贵野生菌

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文