在aix中使用分隔符从同一行读取多条消息

在aix中使用分隔符从同一行读取多条消息

我必须读取以分隔符分隔的单行写入的多条消息AIX

消息分隔如下:

Message1#@#@#Message2#@#@#Message3#@#@#Message4

分隔符是#@#@#.我想一条一条地读取消息并将它们保存到单独的变量或数组中。我正在使用 shell 脚本。

答案1

使用awk

$ awk -F '#@#@#' '{ for (i=1; i<=NF; ++i) printf("This is message %d: %s\n", i, $i) }' file
This is message 1: Message1
This is message 2: Message2
This is message 3: Message3
This is message 4: Message4

这将输入字段分隔符设置为#@#@#,然后迭代每行输入的每个此类字段,单独打印出这些字段。

相关内容