免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 690 | 回复: 6

[文本处理] 如何用gawk将变量的值进行打印? [复制链接]

论坛徽章:
0
发表于 2019-11-18 09:04 |显示全部楼层
  1. [root@zx-ops-test-01 ~]# cat wget.log | grep '^[0-9]\{4\}-[0-9][0-9]-[0-9][0-9]' | gawk '{print $6}'
  2. ‘/data/third_parth/tcl8.5.18-src.tar.gz’
  3. ‘/data/third_parth/tcl8.6.1-src.tar.gz’
  4. ‘/data/third_parth/redis-3.2.3.tar.gz’
复制代码
如上图代码,,我想提取tcl8.5.18-src.tar.gz这样子的报告,,我想用变量进行传递,就是将‘/data/third_parth/tcl8.5.18-src.tar.gz’
‘/data/third_parth/tcl8.6.1-src.tar.gz’、‘/data/third_parth/redis-3.2.3.tar.gz’值存在一个变量中,再对这个变量进行格式化,可是怎么进行传递?
当然其他方法也行,,我目前想到这种方法,可是我不知道如何将这几个值存储在变量中?

论坛徽章:
0
发表于 2019-11-18 09:05 |显示全部楼层
就是一条命令即可,不要脚本化操作

论坛徽章:
0
发表于 2019-11-18 09:54 |显示全部楼层
哈哈,,我真聪明,,灵机一动,想到呢
可以这样做
[root@zx-ops-test-01 ~]# cat wget.log | grep '^[0-9]\{4\}-[0-9][0-9]-[0-9][0-9]' | gawk '{print $6}'  | gawk -F"/" '{print $4}'

神奇的命令

论坛徽章:
0
发表于 2019-11-18 09:55 |显示全部楼层
我想问下,,就是能否通过gawk把输出的报告存在一个变量中呢?

论坛徽章:
0
发表于 2019-11-18 10:10 |显示全部楼层
还是有问题?
输出多了个',,怎么去除这个‘?
tcl8.5.18-src.tar.gz’
tcl8.6.1-src.tar.gz’
redis-3.2.3.tar.gz’

论坛徽章:
0
发表于 2019-11-18 15:15 |显示全部楼层
在powershell中用
$a = cat wget.log | grep '^[0-9]\{4\}-[0-9][0-9]-[0-9][0-9]' | gawk '{print $6}'
即可,多个返回【自动是数组】。

bash中好像不行。
aaa=`ps -ef |grep bash`
echo $aaa
root 2288 2286 0 14:50 pts/0 00:00:00 -bash root 5771 5768 0 15:08 pts/1 00:00:00 -bash root 5988 2288 0 15:09 pts/0 00:00:00 -bash root 5990 5988 0 15:09 pts/0 00:00:00 grep --color=auto bash
当然可能是我bash水平太差。不过我认为它太差。

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2019-11-19 12:32 |显示全部楼层
本帖最后由 1cpuer 于 2019-11-19 12:51 编辑

# bash:root [14028] 2019-11-19 12:15:55 1574136955 /media/buku/dic1-d # echo ''\''q /data/third_parth/tcl8.6.1-src.tar.gz'\'''
'q /data/third_parth/tcl8.6.1-src.tar.gz'


# bash:root [14029] 2019-11-19 12:16:10 1574136970 /media/buku/dic1-d # echo ''\''q /data/third_parth/tcl8.6.1-src.tar.gz'\''' | gawk -F"/" '{print $4}'
tcl8.6.1-src.tar.gz'

#:--gawk 大概就是gunawk 简称, awk 默认分隔符为空[\x20] | [ ] | [\ ],将"/" 作为分隔符,打印第4列

# bash:root [14034] 2019-11-19 12:30:19 1574137819 /media/buku/dic1-d # echo ''\''q /data/third_parth/tcl8.6.1-src.tar.gz'\''' | gawk -F"/" '{print $4}'| sed 's/\(tar.gz\)'\''/\1/'
tcl8.6.1-src.tar.gz
# bash:root [14056] 2019-11-19 12:44:29 1574138669 /media/buku/dic1-d # echo -e "1vvw1'"| sed 's/'\''$//g'
1vvw1
# bash:root [14064] 2019-11-19 12:49:53 1574138993 /media/buku/dic1-d # echo '/data/third_parth/tcl8.6.1-src.tar.gz'\''' | gawk -F"[/|']" '{print $4}'
tcl8.6.1-src.tar.gz
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

ITPUB技术栈

ITPUB技术栈:http://z.itpub.net/
ITPUB技术栈是由ITPUB社区打造的垂直于IT领域的知识交流平台,在这里,你既可以是创作者也可以是消费者。如果你的IT生涯丰富多彩,喷薄的个人价值尽可在小栈内体现;如果你渴望找到志同道合的伙伴,拓宽人脉,小栈会是你最好的选择。





点击进入>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP