1

これは何度も取り上げられていると思いますが、良い答えが見つからないようです...

これが私のファイルです:

$ cat myfile.txt
server1     instance1 instance2 instance3
server2     instance4
server3     instance5 instance6

私が欲しいもの:

Server: server1, Instance: instance1
Server: server1, Instance: instance2
Server: server1, Instance: instance3
Server: server2, Instance: instance4
Server: server3, Instance: instance5
Server: server3, Instance: instance6

ループ内でifステートメントを使用してそれを行う方法を見つけましたが、確かにもっと良い方法があります...

ありがとう!!

4

2 に答える 2

4

Bash はこのタスクを簡単に処理できます。

#!/bin/bash
# File: format_output.sh
while read server instances
do
    for instance in $instances
    do
        echo "Server: $server, Instance: $instance"
    done
done

使用するには:

$ bash format_output.sh < myfile.txt
于 2013-04-24T01:21:32.123 に答える
3

awk が許可されている場合、次のようなもの

awk '{for(i=2;i<=NF;i++) print "Server: " $1 ", Instance: " $i }' < myfile.txt
于 2013-04-24T00:59:22.843 に答える