awk如何提取字段 我有3个文件file,内容如下: File01: CSD=-227.6045723\...
发布网友
发布时间:2022-04-25 12:24
我来回答
共4个回答
热心网友
时间:2024-10-24 08:34
以 \ 为记录分隔符而不用默认的换行符 \n,以 = 为字段分隔符。
若出现换行,则用sub()去除换行符。
以File03为例:
awk 'BEGIN{RS="\\";FS="="} {if($0~/^..*\n..*$/) sub(/\n/, ""); if($1=="CCSD(T)") printf("File03 CCSD(T)=%s\n",$2)}' File03
结果得到:
File03 CCSD(T)=-227.6602668
楼主给出的4个文件都可以用这种方法。
研究了老半天,求加分,嘿嘿~~
热心网友
时间:2024-10-24 08:37
请完善题目先。
好像内容不完整的,无法解答。
热心网友
时间:2024-10-24 08:41
[root@localhost ~]# cat a.tmp
CSD=-227.6045723\CCSD(T)=-227.6654331\S2=0.827
[root@localhost ~]# sed 's/\\/\t/g' a.tmp
CSD=-227.6045723 CCSD(T)=-227.6654331 S2=0.827
[root@localhost ~]# sed 's/\\/\t/g' a.tmp | awk '{printf ("%s\n",$1);}'
CSD=-227.6045723
[root@localhost ~]# sed 's/\\/\t/g' a.tmp | awk '{printf ("%s\n",$2);}'
CCSD(T)=-227.6654331
热心网友
时间:2024-10-24 08:34
你看你问题问得,谁能看得懂!?