6

次のコードのためのより良い解決策を探しています:

for i in a b c
do
  for j in A B C
  do
    for k in 1 2 3
    do
      echo "$i$j$k"
    done
  done
done

確かにここにいくつかのより簡単な解決策があります。

4

2 に答える 2

12

これは少し簡単です

echo {a,b,c}{A,B,C}{1,2,3}

または、1行に1つ必要な場合は、

echo {a,b,c}{A,B,C}{1,2,3} | xargs -n1

ところで、上記のブレーサー拡張を使用して、たとえば、次のようなバックアップファイルを作成する必要がある場合にキーボード入力を保存できます。

cp /some/long/path/And_very-ugly-fileName{,.copy}

/some/long/path/And_very-ugly-fileName.copy2番目のファイル名を入力せずに作成します。

于 2012-09-23T20:12:33.703 に答える
6

ブレース拡張を使用します:

echo {a,b,c}{A,B,C}{1,2,3}

これにより、、、、およびのセット間のすべての可能な組み合わせが出力されます。{a,b,c}{A,B,C}{1,2,3}

または、範囲を使用してさらに簡単に:

echo {a..c}{A..C}{1..3}

また、行ごとに各組み合わせを印刷する場合は、for-loopを使用します。

for i in {a..c}{A..C}{1..3}; do echo $i; done
于 2012-09-23T20:12:27.497 に答える