2013-12-12 30 views
1

我有下面的文字,如Linux的输出:删除信

service {'name': 'services'} 
    enable yes 
    frequency 7200 
    service {'name': 'files'} 
    enable yes 
    frequency 6000 
    none 

进出口寻找到输出转换成类似的方式:用下一个命令

services yes 7200 
files yes 6000 

林:

| xargs -n 7 | awk '{print $3 "/" $5"/" $7}' 

但作为输出具有即时:

services}/yes/7200 
files}/yes/6000 

无论如何删除那个},或得到没有这个字符的最后输出?

回答

3

如果你确定与移除任何及所有'}的,最容易做的事情是使用翻译:

| xargs -n 7 | awk '{print $3 "/" $5"/" $7}'| tr -d '{' 

TR -d将删除“{”

2

每个实例如果您设置字段分隔符的任何东西,但字母和数字来看,它简化了解析:

awk -F'[^a-z0-9]+' ' 
    /service/ {printf "%s ", $3} 
    /enable/ {printf "%s ", $2} 
    /frequency/ {print $2} 
' /tmp/test-data 

输出:

services yes 7200 
files yes 6000