Bash 用于提取元组行中每个元组的第一个成员的脚本

Bash 用于提取元组行中每个元组的第一个成员的脚本,bash,shell,tuples,cut,csh,Bash,Shell,Tuples,Cut,Csh,我有一个文件,其中每一行都是元组列表,格式如下: [('a1','b1','c1','d1','e1'), ('a2','b2','c2','d2','e2'), ..., ('an','bn','cn','dn','en')] n、 这意味着每行的列表长度可能不同 我的目标是提取每个元组的第一个成员,也就是说,我希望每行都有以下输出: a1 a2 ... an 如果元组的数量已知,我就知道怎么做了,但我不能概括。 谢谢 您可以使用sed: sed -E "s/[^(]*\('([^']+)

我有一个文件,其中每一行都是元组列表,格式如下:

[('a1','b1','c1','d1','e1'), ('a2','b2','c2','d2','e2'), ..., ('an','bn','cn','dn','en')]
n、 这意味着每行的列表长度可能不同

我的目标是提取每个元组的第一个成员,也就是说,我希望每行都有以下输出:

a1 a2 ... an
如果元组的数量已知,我就知道怎么做了,但我不能概括。
谢谢

您可以使用
sed

sed -E "s/[^(]*\('([^']+)'[^(]*/\1 /g; s/ $//" < tuples.txt
sed-E“s/[^(]*\('([^']+)”[^(]*/\1/g;s/$/”
这将产生:

a1 a2 an a1 a2安
您可以使用
sed

sed -E "s/[^(]*\('([^']+)'[^(]*/\1 /g; s/ $//" < tuples.txt
sed-E“s/[^(]*\('([^']+)”[^(]*/\1/g;s/$/”
这将产生:

a1 a2 an a1 a2安