今天遇到一个问题,在linux操作系统里面需要取一串数字,但是这串数字在一个双引号引起来的,并且有特殊符号和汉字的字符串里面。
我开始想到的是使用awk去截取字段的方法,可是截取的时候,双引号里面的内容截取不到。
后来想了一个办法,就是用sed -n去截取内容。本来文件名是我在/tmp目录下生成的日期.txt的文件。
下面记录一下截取内容的方法:
cat /tmp/`date +%F`.txt | grep `date +%F` | awk -F ':' '{ print $7}' |awk -F ',' '{print $1}' | egrep -Eo '[0-9]+' | sed -n '3~4p'
这里使用egrep 去获取到了数字,接着取出文件中的第3、7、11行。前面3代表起始行,后面4代表递增值。因为需要获取的数字是4行分成一组,我需要取出每组数字的第3行。所以用sed -n '3~4p',这里是波折号,而不是短横线。
这样,我就可以取出来每一行数字了。
Linux system