タグ付けされた質問 「brace-expansion」

任意の文字列を生成するために使用されるシェルメカニズム。

6
ブレース拡張はいつ使用しますか?
ブレース拡張が何であるかは理解していますが、それをどのように使用するのが最適かわかりません。 いつ使用しますか? あなたがあなた自身のヒントを持っているなら、私にいくつかの便利で注目すべき例を教えてください。

6
ブレース展開を使用して先行ゼロでシーケンスを作成する方法
次を使用すると、期待どおりの結果が得られます。 $ echo {8..10} 8 9 10 このブレース拡張を簡単な方法で使用して、次の出力を取得するにはどうすればよいですか? $ echo {8..10} 08 09 10 これはseq(試してはいませんが)使用して取得できるかもしれませんが、それは私が探しているものではありません。 有用な情報は、私がこのbashバージョンに制限されていることです。(zsh解決策はあるがbash解決策がない場合は、共有してください) $ bash -version GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)

4
シーケンスのシェルブレース展開で$ variableを使用するにはどうすればよいですか?
$var inbashで、範囲を持つシェルブレース拡張を使用します。単純に置くだけで{$var1..$var2}はうまくいかないので、「横向き」にした... 以下は動作しますが、少し面倒です。 # remove the split files echo rm foo.{$ext0..$extN} rm-segments > rm-segments source rm-segments もっと「通常の」方法はありますか?


6
非常に多数のファイルを正しい順序でまとめます
私は命名されている約15,000ファイル持ってfile_1.pdb、file_2.pdb実行してためにこれらの数千程度などI缶猫: cat file_{1..2000}.pdb >> file_all.pdb ただし、15,000個のファイルに対してこれを行うと、エラーが発生します -bash: /bin/cat: Argument list too long 私はこの問題を解決することを見ましたfind . -name xx -exec xxが、これはファイルが結合される順序を保持しません。どうすればこれを達成できますか?


3
Bashの入れ子ブレース拡張ミステリー
この: $ echo {{a..c},{1..3}} これを生成します: a b c 1 2 3 これはいいですが、それを説明するのは難しいです $ echo {a..c},{1..3} 与える a,1 a,2 a,3 b,1 b,2 b,3 c,1 c,2 c,3 これはどこかに文書化されていますか?バッシュリファレンス(それはそれを使用した例であっても)それを言及しません。

5
bash:変数を使用してstderr | stdoutリダイレクトを格納します
スクリプトにコマンドオプションを追加するような変数を介してstdoutとstderrをリダイレクトする方法はありますか? たとえば、スクリプトがあります: #!/bin/bash -x TEST=">/dev/null 2>&1" OPT='-p -v' mkdir $OPT 123/123/123 $TEST OPTは-p問題なく置き換えられ、bashはそれをオプションとして解釈することがわかります。ただし、リダイレクトはディレクトリ名として解釈されます。 $ ./test.sh + TEST='>/dev/null 2>&1' + OPT='-p -v' + mkdir -p -v 123/123/123 '>/dev/null' '2>&1' mkdir: created directory `123/123' mkdir: created directory `123/123/123' mkdir: created directory `>/dev' mkdir: created directory `>/dev/null' mkdir: created directory `2>&1' bashと言う方法はありますか。$ VARはリダイレクト名であり、dirs名ではありません。 …

3
中括弧(中括弧)を使用して、 `mkdir -p`でフォルダー構造を作成します
man mkdir状態として -p, --parents no error if existing, make parent directories as needed このコマンドを実行したとき mkdir -p work/{F1,F2,F3}/{temp1,temp2} それは、このようなフォルダ構造を作成work後、親フォルダF1、F2、F3子フォルダとtemp1とtemp23つの親フォルダの下に子フォルダをF1、F2、F3。 work -F1 -temp1 -temp2 -F2 -temp1 -temp2 -F3 -temp1 -temp2 今の問題は、私が作成したいということですtemp1、temp2フォルダだけ下F1の下でないF2とF3、私は、私は私が欲しいものを行うには、コマンドを書くことができますどのように混乱しています。

3
systemctl \ {restart、status} \ sshd \;が実行されない理由 作業?
エコーを通過した場合の上記コマンドの出力は次のとおりです。 # echo systemctl\ {restart,status}\ sshd\; systemctl restart sshd; systemctl status sshd; 出力を端末に貼り付けても、コマンドは機能します。しかし、コマンドを直接実行しようとすると、次のようになります。 # systemctl\ {restart,status}\ sshd\; bash: systemctl restart sshd;: command not found... 2つの質問があります。 この置換と拡張の方法は正確に何と呼ばれていますか?(そうすれば、私はそれを研究し、それとそれを適切に使用する方法についてさらに学ぶことができます)。 ここで何を間違えましたか?なぜ機能しないのですか?

4
{a、b、c}がbashで展開されるのはいつですか?
を含むbashスクリプト for i in {a,b}-{1,2}; do echo $i; done プリント a-1 a-2 b-1 b-2 実行されたとき。これは私が期待したものです- {a,b}構造が拡張されているため。 ただし、(別の)スクリプトに次が含まれる場合 v={a,b}-{1,2} echo $v 印刷する {a,b}-{1,2} それは私が期待したものではありません。私はそれが印刷されると思ったa-1 a-2 b-1 b-2。明らかに、{a,b}コンストラクトは展開されません。 私はそれをそのように拡張させることができます v=$(echo {a,b}-{1,2}) これらの観察に基づいて、2つの質問があります。1){a,b}コンストラクトはいつ拡張されますか?2)$(echo {a,b}-{1,2})必要に応じて拡張をトリガーするのに好ましい方法はありますか?

3
「cat {foo}」がfooを出力しないのに、「cat {foo、bar}」が出力するのはなぜですか?
私はサブフォルダ内のテキストファイルを連結しようとしていました: cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1}/book.txt > out$var しかし、これは何も返しませんでした。そこで、存在しない「サブフォルダー2」を追加してみました cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1,subfolder2}/book.txt > out$var そして今回はうまく機能し、ファイルを正常に連結しました。なぜこれが起こるのですか?

3
パススラッシュの後のbashブレースの展開
ブレース拡張を使用して、ファイルを別の名前で同じディレクトリにコピーしようとしています。私はbash 4.4.18を使用しています。 私がやったことは次のとおりです。 cp ~/some/dir/{my-file-to-rename.bin, new-name-of-file.bin} しかし、私はこのエラーを受け取ります: cp: cannot stat '/home/xyz/some/dir/{my-file-to-rename.bin,': No such file or directory このような単純なブレース展開でも、同じエラーが発生します。 cp {my-file-to-rename.bin, new-name-of-file.bin} 私は何を間違えていますか?

3
ブレース(順列)と配列拡張を同時に使用できますか?
Bashの{}ブレース展開構文により、簡単な順列を作成できます # echo {b,c,d}{a,e,i,o,u} ba be bi bo bu ca ce ci co cu da de di do du しかし、それは非常に厄介な使用を除き、アレイと一緒にこれを使用することが可能ですか/場合私にははっきりしていない$() echoとeval 中括弧(順列)展開で配列を使用する簡単な方法はありますか? たとえば、次のようなものを想像してみてください(もちろん機能しません)。 CONS=( b c d ) VOWEL=( a e i o u ) echo {${CONS[@]}}{${VOWEL[@]}}


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.