Unix 使用多个分隔符解析文本文件

Unix 使用多个分隔符解析文本文件,unix,awk,Unix,Awk,我想用许多分隔符来解析文本文件,但函数awk在我的代码中不能正常工作。我哪里出错了 我已经尝试逐行读取文件,并使用awk函数解析我的文本文件 看起来是这样的: ===== aaaa ==== zxczxczxc ==== bbbb zzzz .c ===== aaaa ==== asdasdas ==== bbbb mmmm .c ===== aaaa ==== aqweqwea ==== bbbb zasd .c 作为输出,我希望得到一个变量:

我想用许多分隔符来解析文本文件,但函数awk在我的代码中不能正常工作。我哪里出错了

我已经尝试逐行读取文件,并使用awk函数解析我的文本文件 看起来是这样的:

===== aaaa ==== zxczxczxc  ==== bbbb  zzzz   .c     
===== aaaa ==== asdasdas   ==== bbbb  mmmm   .c    
===== aaaa ==== aqweqwea   ==== bbbb  zasd   .c
作为输出,我希望得到一个变量:

zxczxczxc    
asdasdas    
aqweqwea
关于第二个问题:

zzzz   
mmmm  
zasd 

如果这不是您想要的全部,请编辑您的问题,使其更加清晰:

$ foo=$(awk '{print $4}' file)
$ bar=$(awk '{print $7}' file)
$ echo "$foo"
zxczxczxc
asdasdas
aqweqwea
$ echo "$bar"
zzzz
mmmm
zasd

在一行一行的循环中运行awk似乎是一个奇怪的选择。您是否可以共享文件中的更多采样线以及您试图作为输出获取的内容。我强烈怀疑这可能是在一个小的awk命令中完成的。我已经添加了更多的行@jnevilsomething,比如sed-r的/====aaaa=====*===bbbbbb.*.c/\1\2/?@Walter谢谢您的回答,但是这个sed返回了所有文本
$ foo=$(awk '{print $4}' file)
$ bar=$(awk '{print $7}' file)
$ echo "$foo"
zxczxczxc
asdasdas
aqweqwea
$ echo "$bar"
zzzz
mmmm
zasd