array

bashでprintfを使用して@で配列を印刷すると、最初の要素だけが印刷されるのはなぜですか?
array

bashでprintfを使用して@で配列を印刷すると、最初の要素だけが印刷されるのはなぜですか?

配列があります snapshots=(1 2 3 4) 私が走るとき printf "${snapshots[*]}\n" 期待どおりに印刷されます 1 2 3 4 しかし、私が走るとき printf "${snapshots[@]}\n" ただ印刷される 1 改行文字がありません。私の理解は、配列にアクセスすると@配列を拡張し、各要素が改行になるようにする必要がありますが、そうしないようprintfですecho。なぜこれですか? ...

Admin

bcを使用したbash配列の乗算
array

bcを使用したbash配列の乗算

bcループを使用してインデックスを乗算し、派生値に配列値を乗算しようとしています。 #!/bin/bash n=10.0 bw=(1e-3 2.5e-4 1.11e-4 6.25e-5 4.0e-5 2.78e-5 2.04e-5 1.56e-5 1.29e-5 1.23e-5 1.0e-5) for k in {1..11};do a=$(echo "$n * $k" | bc) echo "A is $a" arn=${bw[k-1]} echo "Arn is $arn" b=$(echo "$arn * $...

Admin

ネガティブパターンマッチングとパラメータ拡張を使用してbash配列をフィルタリングすると、予期しない結果が表示されるのはなぜですか?
array

ネガティブパターンマッチングとパラメータ拡張を使用してbash配列をフィルタリングすると、予期しない結果が表示されるのはなぜですか?

私はサイコロを振るために小さな純粋なbashスクリプトを作成しているので、配列を操作する必要があります。私は他の言語で行われているものと同様のことをしたいと思いますfilter。つまり、配列からいくつかの内容を抽出して別の配列に入れることです。 他の操作(インデックス間のスライスなど)に配列を使用する方がはるかに簡単なので、値を bash 配列に維持したいと思います。 ループを使用してこれを行うことができますが、for... do... doneパターンマッチングが期待どおりに機能しない理由は疑問に思います。 shopt -s extglob; dicero...

Admin

配列名に数字の接尾辞を持つTCLの配列を繰り返す
array

配列名に数字の接尾辞を持つTCLの配列を繰り返す

TCLには、名前に数字のサフィックス(つまり、名前が数字で終わる)を含む配列があります。 array set ps0 [ list 0 15.885 1 55.43 1 0.254 2 0.227 3 0.177 ] array set ps1 [ list 0 6.585 1 56.43 1 0.254 2 0.227 3 0.177 ] array set ps2 [ list 0 32.485 1 43.13 1 0.254 2 0.227 3 0.177 ] TCLではこれを繰り返して値を取得する必要がありますが、数値サフィックスをエスケープ...

Admin

POSIX shで位置引数リストをソートする方法
array

POSIX shで位置引数リストをソートする方法

POSIX shで位置引数のリストをソートする方法はありますか?各位置引数には、すべての文字(スペース、改行、タブなど)を含めることができます。ソートアルゴリズムは、プログラマーが定義した比較に基づいてリストをソートするのに十分な一般的なものでなければなりません(例えば、数値/辞書ソートを使用するなど)。expr比較、各位置引数の部分文字列のみを考慮したソートなど)。 POSIX shの位置パラメータのリストには、スタックとキューの両方の属性があるようです。 push(set -- "$x" "$@")、pop(x="$1"; shift)、enqueue(...

Admin

zipアーカイブの内容を同時に抽出して削除する方法は?
array

zipアーカイブの内容を同時に抽出して削除する方法は?

単一ファイル形式の複数の小さなファイルを含む大容量zipアーカイブ(> 180 GB)をSSDにダウンロードして抽出したいのですが、zipアーカイブと抽出されたコンテンツの両方を収容するのに十分な容量がありません。回答に記載されているzipコマンドを使用して、アーカイブから個々のファイルを抽出して削除できることを知っています。ここそしてここ。また、コマンドを使用してアーカイブ内のすべてのファイルの名前を取得し、上記のようにunzip -l結果を配列に保存することもできます。ここ、与えられた方法を使用して不要な値をフィルタリングします。ここ、上記のように...

Admin

配列配列から繰り返す配列を選択するには?
array

配列配列から繰り返す配列を選択するには?

#!/usr/bin/bash ARGENT=("Nous devons économiser de l'argent." "Je dois économiser de l'argent.") BIENETRE=("Comment vas-tu?" "Tout va bien ?") aoarrs=("${ARGENT}" "${BIENETRE}") select arr in "${aoarrs[@]}"; do for el in "${arr[@]}"; do echo "$el" done break done ...

Admin

大きなインデックスを持つbash配列を起動するとどうなりますか?
array

大きなインデックスを持つbash配列を起動するとどうなりますか?

bash "多次元"配列を作成しようとしているときに連想配列を使用するアイデアを見ましたが、最も簡単な方法は次のとおりです。 for i in 0 1 2 do for j in 0 1 2 do a[$i$j]="something" done done 値を設定して取得するのは簡単ですが、bashがインデックス00から22まで順番に要素にスペースを割り当てる場合(つまり、{0,1,2,3,4,...,21,22}の位置を割り当てます)意味)、そうではありません。実際の要素のセット:{00,01,02,10,11...

Admin

Bashはスペースで区切られたリストを管理します。
array

Bashはスペースで区切られたリストを管理します。

ファイルから読み取られた複数の値のリストをスペースで区切られた値として扱うかなり複雑なシェルスクリプトがあります。 SET1="value1 value2 value3" for i in ${SET1}; do ... さて、スクリプトに似た形式のリストを作成して作成したいと思います。しかし、次のようにすると(例えば): DISCOVERED='' DISCOVERED+=( us-east-1 ) DISCOVERED+=( us-east-2 ) DISCOVERED+=( us-west-1 ) for REGION in ${DISCOV...

Admin

並列処理を使用して配列に追加することはできません。
array

並列処理を使用して配列に追加することはできません。

parallel問題なくforループを使用すると、配列に追加できません。 並列例: append() { arr+=("$1"); } export -f append parallel -j 0 append ::: {1..4} declare -p arr 出力: -bash: declare: arr: not found ループの場合: for i in {1..4}; do arr+=("$i"); done declare -p arr 出力: declare -a arr=([0]="1" [1]="2" [2]="3" [3]="...

Admin

配列を作成して追加します。 mapfileはarr + =(input)と同じですか、それとも何かが欠けていますか?
array

配列を作成して追加します。 mapfileはarr + =(input)と同じですか、それとも何かが欠けていますか?

mapfile利点がそれより大きい状況がありますかarr+=(input)? 簡単な例 マッピングファイルの配列名、arr: mkdir {1,2,3} mapfile -t arr < <(ls) declare -p arr 出力: declare -a arr=([0])="1" [1]="2" [2]="3") 編集する: 次のヘッダーを変更しました。本文にはy配列名がありますが、ヘッダーには名前があり、混乱をarr招く可能性があります。 y+=(入力) IFS=$'\n' y+=($(ls)) declare -p y 出...

Admin

Bash:スペースと引用符付きの文字列を配列に変換する
array

Bash:スペースと引用符付きの文字列を配列に変換する

引用符の中に一連の文字列を出力する関数(私が作成したものではありません)があります。 command <args> “Foo” “FooBar” “Foo Bar” “FooBar/Foo Bar” 配列(Bash、BSD / Mac)に割り当てようとすると、4つではなく7つの要素が表示されます。たとえば、${array[2]}私にしなければならないgetですが、代わりに“Foo Bar”私が取得する”Foo次の要素はBar”.any要素です。いいえスペースはうまく機能します(例${array[0]}:「Foo」) 要素自体が空白(?)で区切...

Admin

埋め込み配列と埋め込みグローブを除く配列から作成されたファイル配列を取得します。
array

埋め込み配列と埋め込みグローブを除く配列から作成されたファイル配列を取得します。

私は次のことをしたいと思います: プロセスに含める基本ファイルのコレクションを指定するグローバル配列を定義します。 このプロセスから除外するファイルを指定するグローバル配列を定義します。このglob配列で指定されたファイルが上記のセットにないかどうかは私にとって重要ではありません。 配列の構築文書(globではない)、含むglob配列に指定されたすべてのファイルを取得し、除外されたglob配列に属するすべてのファイルを削除します。 私はこれで苦労しています。進捗状況と私が試した作業のいくつかの明確な例を示すために、次の作業を試しました。 # List a...

Admin

varに設定されている場合、スライス配列の出力を文字列ではなく別々の項目としてどのように保存できますか?
array

varに設定されている場合、スライス配列の出力を文字列ではなく別々の項目としてどのように保存できますか?

配列を分割すると、出力は変数に文字列としてキャプチャされます。 スライスを直接使用する場合は、別の項目になります。 文字列に変換せずに変数にスライス配列を格納する方法は? この問題を解決する他の方法や方法はありますか? 例: # setting IFS to this, no need to quote anything IFS=$'\n' mapfile -t arr < <(for i in {1..6}; do echo $i; done) declare -p arr declare -a arr=([0]="1" [1]="2" [...

Admin