我的输入文件如下所示:
Session: 324098324
Object: dd02:/24
Time: Sat 28 Oct 2017 12:40:41 AM CEST
Status: Error
ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
Session: 324321
Object: ad02:/24
Time: Sun 13 May 2018 12:00:43 PM CEST
Status: Ok
ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/21857092
Session: 132452
Object: xd01:/24
Time: Sun 08 Jul 2018 12:16:56 PM CEST
Status: Error
ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/21695878输出应该是:不对
Session: 324098324, Object: ad02:/24, Time: Sat 28 Oct 2017 12:40:41 AM CEST, Status: Error, ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
Session: 324098324, Object: ad02:/24, Time: Sat 28 Oct 2017 12:40:41 AM CEST, Status: Error, ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
Session: 324098324, Object: ad02:/24, Time: Sat 28 Oct 2017 12:40:41 AM CEST, Status: Error, ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991编辑:我在输出格式上做了一个很大的失败,上面的一个不能作为CSV使用,我需要这样的格式:
Session, Object, Time, Status, ID
324098324, ad02:/24, Sat 28 Oct 2017 12:40:41 AM CEST, Error, 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
324098324, ad02:/24, Sat 28 Oct 2017 12:40:41 AM CEST, Error, 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
324098324, ad02:/24, Sat 28 Oct 2017 12:40:41 AM CEST, Error, 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991发布于 2018-08-10 12:11:06
awk -v RS='' '{gsub("\n", ", "); print}' input发布于 2018-08-10 12:21:53
有paste吗?试一试
paste -s -d"\t\t\t\t\t\n" file发布于 2018-08-12 17:41:22
grep -A4 "Session " myfile | paste -s -d ' \n'
grep找到word会话,并在成功后打印4行。
paste将它们转换为单行。
您可以轻松地通过paste -s -d '||||\n' OR paste -s -d ',,,,\n'设置输出分隔符。
https://unix.stackexchange.com/questions/461773
复制相似问题