LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 752|回复: 8

如何实现读取一段内容作为zenity里每列的内容

[复制链接]
发表于 2006-9-13 20:50:18 | 显示全部楼层 |阅读模式
比如我有文件A,格式如下:
aaaBegin
A S D F
F D S A
aaaEnd

bbbBegin
J K L N
N L K J
bbbEnd
现在我想从A文件中读取bbbBegin和bbbEnd之间的内容作为zenity每列的内容:
zenity --titile="ccc" --list --column="d" --column="d" --column="d" --column="d"
请问如何实现?谢谢
发表于 2006-9-13 21:19:21 | 显示全部楼层
awk '{if($1=="J" || $1=="N") print $1,$2,$3,$4}' A>zenity
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-13 22:24:24 | 显示全部楼层
bbbBegin和bbbEnd之间的内容以后是会改变的,所以不能用你这种方法
回复 支持 反对

使用道具 举报

发表于 2006-9-14 00:32:30 | 显示全部楼层
[PHP]
while read -a line
do
    [ -z "${line[0]}" ] && continue
    [ ${line[0]} = 'bbbBegin' ] &&
    while read -a col
    do
        [ -z "${col[0]}" ] && continue
        [ ${col[0]} = 'bbbEnd' ] && break
        echo col1=${col[0]} col2=${col[1]} col3=${col[2]} col4=${col[3]}
    done
done < A
[/PHP]
回复 支持 反对

使用道具 举报

发表于 2006-9-14 01:14:58 | 显示全部楼层
How about this
  1. sed -n '/bbbBegin/,/bbbEnd/{/bbbBegin\|bbbEnd/!p}' A | zenity --title="ccc" --list --column="d" --column="d"
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-9-14 11:47:32 | 显示全部楼层
Post by yongjian
How about this
  1. sed -n '/bbbBegin/,/bbbEnd/{/bbbBegin\|bbbEnd/!p}' A | zenity --title="ccc" --list --column="d" --column="d"
复制代码


请问 /bbbBegin\|bbbEnd/!p  这里的 \| 为什么还要加 \ 呢?:ask
回复 支持 反对

使用道具 举报

发表于 2006-9-14 12:17:39 | 显示全部楼层
Post by RAULNAN
请问 /bbbBegin\|bbbEnd/!p  这里的 \| 为什么还要加 \ 呢?:ask

Ext regex such as +, (), |, {n,m} must be escaped in Sed to protect their metachar meaning.
回复 支持 反对

使用道具 举报

发表于 2006-9-14 12:19:26 | 显示全部楼层
谢谢!HEHE。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-14 12:50:25 | 显示全部楼层
谢谢大¶,尤其是yongjian兄,我使了一下,发现还需要在管道后加了xargs,否则读入的数据会都显示在第一行,问题解决了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表