Awk 需要连接数据文件中的行。数据线不一致

Awk 需要连接数据文件中的行。数据线不一致,awk,sed,Awk,Sed,我需要使用键连接输入数据文件中的行。具体而言,数据行1始终以“C1”开头,数据行2始终以“J1”开头。 并非所有情况下都有“C1”。有些“J1”行没有前面的“C1”行。最好的情况是,我可以将“C1 | | J1”行检索到输出文件中,将“J1”奇点检索到单独的输出文件中。我在这个网站上搜索了一天的大部分时间,但我并不清楚 由于存在单个“J1”线,因此无法使用奇数/偶数方法。 我对Perl一无所知,我们也不在工作中使用它,所以Perl已经过时了。 我有点受限于awk,sed OMG忘记了样本输入和样

我需要使用键连接输入数据文件中的行。具体而言,数据行1始终以“C1”开头,数据行2始终以“J1”开头。
并非所有情况下都有“C1”。有些“J1”行没有前面的“C1”行。最好的情况是,我可以将“C1 | | J1”行检索到输出文件中,将“J1”奇点检索到单独的输出文件中。我在这个网站上搜索了一天的大部分时间,但我并不清楚

由于存在单个“J1”线,因此无法使用奇数/偶数方法。
我对Perl一无所知,我们也不在工作中使用它,所以Perl已经过时了。 我有点受限于awk,sed

OMG忘记了样本输入和样本输出。我的错

样本输入: C1114166550200909IP

J1114166550SA0165235Z00000X295053911A

C112411158820060930OP

J1124111588DE2095332B00000X29650

J11241115887145143336C0003X296501145D

J11241115887814653336C0003X296501145D

C104327839320060503OP

J1043278393548223332B0000X295053424A

示例输出文件1: C1114166550200909IP J1114166550SA0165235Z00000X295053911A

C112411158820060930OP J1124111588DE2095332B00000X29650

C104327839320060503OP J1043278393548223332B00000X295053424A

示例输出文件2: J11241115887145143336C0003X296501145D

J11241115887814653336C0003X296501145D

状态机不太可能在这里工作

提前谢谢。
小罗伯特·霍尔特

你可能想要这样的东西:

awk '/^J1/{print p, $0; p=""; next} {p=$0}' file

但在发布一些示例输入和预期输出之前,这只是一个粗略的猜测。

显示样本输入和该样本输入所需的输出。听起来像是状态机的工作,因为你在这个网站上搜索了一天的大部分时间,你会毫无疑问地注意到,样本输入和预期输出总是需要让人们考虑帮助你。