![如何根据unix中awk中的cloumn值将行转换为列](https://linux22.com/image/7090/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AEunix%E4%B8%ADawk%E4%B8%AD%E7%9A%84cloumn%E5%80%BC%E5%B0%86%E8%A1%8C%E8%BD%AC%E6%8D%A2%E4%B8%BA%E5%88%97.png)
我有如下数据
dn: uid=032096,OU=客户,OU=人员,O=B2C 对象类别:顶部 对象类别:人 对象类:organizationalPerson 对象类:用户 对象类:inetOrgPerson 对象类:b2CCustomerPerson cn:xxxxxxxxxxxxxxxxxx 尊贵名称:uid=032096,OU=客户,OU=人员,O=B2C 实例类型:4 创建时间:20110716120512.0Z 更改时间:20160407215618.0Z USN创建:401180 uSN更改:88288899 名称:032096 objectGUID:: B2QAeBHw1UKwFJAkKi8SFg== 密码最后设置:130528418341644345 objectSid:: AQUAABjdlU4Ng+r7Fsx63e/RO0CWfrW51Nqjtg== 对象类别:CN=人、CN=架构、CN=配置、CN={C3B2C981-53A4-46FE-A3 08-1CA306D4D63D} dSCorePropagationData:16010101000000.0Z 最后登录时间戳:131045397771771108 b2CSmDisabledFlag:0 b2CQALoginLockout:FALSE b2C忘记密码24小时开始时间:20140818092312.0Z b2C后缀代码:00 b2CPwdNotSetup:假 b2CSm密码数据:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxG0G+3K7wga6Fd 6ujkLxkBaUEeEzCc8DmyfaKJTVn+QHNCaCq19TVZLhXVAEzoJGrTwY= b2CWorkAddrDecriminator:美国 b2CQALoginAttempt:0 名字: xxxxxx 标题:00 用户编号:032096 b2C密码问题:1xxxx b2CBillingAddrDecriminator:美国 b2CQA最后登录尝试:20140818132312.0Z b2CDeliveryAddrDecriminator:美国 b2C密码答案:xxxxxxxxxxxxxxxxxxxxx b2CHomeAddrDecriminator:美国 SN:xxxxxxxxxxxxxxx b2CLastProfileChange:20140818132312.0Z b2C用户隐私同意:20071220171228.0Z 邮件:xxxxxxxxxxxxxxxxxxxxx b2CForgottenPasswordToken:xxxxxxxxxxxxxxx dn: uid=03310326,OU=客户,OU=人员,O=B2C 对象类别:顶部 对象类别:人 对象类:organizationalPerson 对象类:用户 对象类:inetOrgPerson 对象类:b2CCustomerPerson 联系电话:xxxxxx 我:xxxxx 圣: GA 邮政编码: xxxxxx 尊贵名称:uid=03310326,OU=客户,OU=人员,O=B2C 实例类型:4 创建时间:20120825012935.0Z 更改时间:20160122015941.0Z uSN创建:8104543 uSN更改:81191393 姓名:03310326 objectGUID:: a9Plz3ZBJE2XLjKzbi+jlA== 密码最后设置:129903317755454064 objectSid:: AQUAABjdlU4Ng+r7OCPkQBbSZU+kRb2ssiuk2w== 对象类别:CN=人、CN=架构、CN=配置、CN={C3B2C981-53A4-46FE-A3 08-1CA306D4D63D} dSCorePropagationData:16010101000000.0Z 最后登录时间戳:130979015771278217 b2CSmDisabledFlag:0 b2CQALoginLockout:FALSE 首选语言: EN b2C后缀代码:02 b2CSm密码数据:xxxxxxxxxLZzGFgBmq2XPjD7qwXYAFl6e9G4jvQf6fMp306ksGE EWEf9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx b2CWorkAddrDecriminator:美国 中间名:A b2CQALoginAttempt:0 家庭电话:xxxxxxxxxxxxxxxxxx 名字:xxxxxxxxxxxxxxx 标题:01 手机:3610625 用户编号:03310326 b2C密码问题: xxxxxxxxxxxx b2CBillingAddrDecriminator:美国 b2CQA最后登录尝试:20130720213011.0Z b2CDeliveryAddrDecriminator:美国 b2C密码问题2: xxxxxxxxxxxx b2CMobileAreaCode: xxxxxxx b2CPasswordAnswer2: xxxxxxxxxxxx b2C密码答案:xxxxxxxxxxx b2CHomeAddrDecriminator:美国 SN:xxxxxxxxxxxxxxxxxx 街道地址:xxxxxxxxxxxxxxx b2CLastProfileChange:20130720213011.0Z b2C最后密码更改:20120825012935.0Z b2CHomeAddressZipCodeS4: xxxxxxxxxx b2C用户隐私同意:20120825012935.0Z b2CHomeAreaCode: xxxxxxxx 邮件:xxxxxxxxxxxx b2CUserProfile状态:201 b2COriginatingAppID:xxxxxxxxxxxxxxx
我需要像这样的输出
dn: uid=032096,OU=客户,OU=People,O=B2C|objectClass: 顶部|...... dn: uid=03310326,OU=客户,OU=People,O=B2C|objectClass: 顶部|....
答案1
您可以使用paste
这样做,例如:
粘贴-d'|' -s 文件名
答案2
尝试awk
实现这一目标:
awk '/dn/{if(b)print b;b=$0;next}NF{b=b "|" $0}END{print b}' 文件名 > file.out