aixで区切り文字を使用して同じ行から複数​​のメッセージを読み取る

aixで区切り文字を使用して同じ行から複数​​のメッセージを読み取る

区切り文字で区切られた1行に書き込まれた複数のメッセージを読む必要がありますAIX

メッセージは次のように区別されます。

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

区切り記号はです#@#@#。メッセージを1つずつ読み、別の変数や配列に保存したいと思います。シェルスクリプトを使用しています。

答え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

これは入力フィールド区切り文字をに設定し、各入力行#@#@#に対してそのフィールドを繰り返してそのフィールドを個別に印刷します。

関連情報