我必须读取以分隔符分隔的单行写入的多条消息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
这将输入字段分隔符设置为#@#@#
,然后迭代每行输入的每个此类字段,单独打印出这些字段。