シェルスクリプトのコマンドラインパラメータとして、ファイルのコレクションから1つのファイルを繰り返し渡します

g00glechr0me

私はx個のファイルを持っています:A、B、C ...私がする必要があるのは、これらの各ファイルを最初のコマンドライン引数としてPythonファイルに渡し、他のファイルをすべてのファイルが渡されるまで2番目のコマンドライン引数として渡すことです一度$ 1として。たとえば、最初の反復では、Aは$ 1で、B、C ...は$ 2です。2回目の反復でBは$ 1で、A、C ...は$ 2です。私はシフトについて読みましたシェルでコマンドを実行しますが、私の場合に機能するかどうかはよくわかりません(シェルスクリプトも比較的新しいです)。また、Pythonスクリプトに渡すことができるコマンドライン引数の数に制限はありますか?また、ファイルを反復処理する前に、ファイル名のリストを保持する変数を作成したいと思います。ありがとうございました!

ジョン・クーゲルマン

Bashには配列があり、${array[@]:start:end}構文による配列スライシングをサポートしています。ここで、startendはオプションのインデックスです。それは仕事を成し遂げるのに十分です。

#!/bin/bash

# Store the master list of file names in an array called $files.    
files=("$@")

for ((i = 0; i < ${#files[@]}; ++i)); do
    # Store the single item in $file and the rest in an array $others.
    file=${files[i]}
    others=("${files[@]:0:i}" "${files[@]:i+1}")

    # Run command.py. Use ${others[*]} to concatenate all the file names into one long
    # string, and override $IFS so they're joined with commas.
    (IFS=','; command.py "${files[i]}" "${others[*]}")
done

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コマンドの出力を定位置パラメーターとしてLinuxシェルスクリプトのスクリプトファイルに渡す

分類Dev

フィールドにクエリを実行してメインコレクションフィールドを取得し、クラウドファイヤーストアのサブコレクションドキュメントでサブコレクションを取得することはできますか?

分類Dev

プロジェクトファイルとライブラリファイルを含むコマンドラインからJavaアプリケーションをコンパイルします

分類Dev

シェルスクリプトのBigqueryコマンドラインにパラメータとしてテーブル名を渡す方法

分類Dev

シェルスクリプトを使用してディレクトリからホームディレクトリにファイルを移動すると、スタンドアロンコマンドとして機能します(.shファイルの外部と同様)。

分類Dev

シンボルが見つかりません: `javac`コマンドを使用してパブリッククラスjavaに実装されたデフォルトのアクセスインターフェイス(別のsrcファイルで宣言されています)

分類Dev

シンボルが見つかりません: `javac`コマンドを使用してパブリッククラスjavaに実装されたデフォルトのアクセスインターフェイス(別のsrcファイルで宣言されています)

分類Dev

Jar ファイル クラスはコマンド プロンプトから実行されますが、QTP のシェル スクリプト オブジェクトを介して実行すると ClassDefFound はありません。

分類Dev

ファイルの場所にシステムPATHを使用して、WindowsコマンドラインからPythonスクリプトを起動します

分類Dev

1つのファイルで複数のシェルコマンドを実行し、出力を同じファイルにリダイレクトします

分類Dev

ファイルタイプのデフォルトアプリケーションを使用して、os / xのコマンドラインから新しいファイルを開きます

分類Dev

ファイルをマウントして、コンテナkubernetes内のアプリケーションからファイルにアクセスする方法

分類Dev

スクリーンショットを撮り、タイムスタンプベースの名前で指定した場所に保存し、ファイルパスとファイル名をクリップボードにコピーします

分類Dev

Jenkinsパイプラインのシェルスクリプトを介してansibleプレイブックを実行すると、エコー出力がバッファリングされ、リアルタイムで表示されません

分類Dev

シェルコマンドまたはPerlを使用して、ファイルのサブセクションからデータを抽出します

分類Dev

GCCを使用して、特定のコンパイラフラグを使用してコードファイルの1つのセクションをコンパイルすることは可能ですか?

分類Dev

3つのファイル(入力として取得)のコンテンツをマージし、シェルスクリプトを使用して表示する方法

分類Dev

巨大なJavaファイルからメインクラスの名前を返します任意のコマンドライン機能はありますか?

分類Dev

lstateエラー:Dockerビルドコマンドを使用してカスタムイメージからDockerをビルドしているときにそのようなファイルまたはディレクトリがありません

分類Dev

すべてのsedコマンドを1つのシェルスクリプトファイルに配置します

分類Dev

すべてのsedコマンドを1つのシェルスクリプトファイルに配置します

分類Dev

アンパサンドを使用してシェルの出力をファイルにリダイレクトすると、出力にいくつかの追加コマンドが返されます

分類Dev

ブランチからのすべてのファイルを(コマンド/スクリプトを使用して)mainにマージしますcleartool

分類Dev

コマンドラインの特定のリポジトリにアーティファクトの聖霊降臨祭のpomをデプロイしますか?(pomエディションとファイルデプロイなし)

分類Dev

共通のcreateValueメソッドを定義するパラメーターを持つケースクラスのシェイプレスのジェネリックデフォルトインスタンスを使用してビルドします

分類Dev

理想的にはコマンドラインを使用して、複数の.csvファイルを1つのマルチシート.xlsスプレッドシートに変換する方法はありますか?

分類Dev

2つの(パイプされた)シェルコマンドをパラメーターとしてシェル関数に渡します

分類Dev

Javaプログラムから呼び出されたWindowsコマンドプロンプトを使用して、複数の連続したスペースを含む文字列をパラメータとしてjarファイルに渡します。

分類Dev

cronjob / mailを使用してファイルを外部クライアントに実行するとphpmailerの添付ファイルが失敗しますが、コマンドラインからスクリプトを実行すると機能します

Related 関連記事

  1. 1

    コマンドの出力を定位置パラメーターとしてLinuxシェルスクリプトのスクリプトファイルに渡す

  2. 2

    フィールドにクエリを実行してメインコレクションフィールドを取得し、クラウドファイヤーストアのサブコレクションドキュメントでサブコレクションを取得することはできますか?

  3. 3

    プロジェクトファイルとライブラリファイルを含むコマンドラインからJavaアプリケーションをコンパイルします

  4. 4

    シェルスクリプトのBigqueryコマンドラインにパラメータとしてテーブル名を渡す方法

  5. 5

    シェルスクリプトを使用してディレクトリからホームディレクトリにファイルを移動すると、スタンドアロンコマンドとして機能します(.shファイルの外部と同様)。

  6. 6

    シンボルが見つかりません: `javac`コマンドを使用してパブリッククラスjavaに実装されたデフォルトのアクセスインターフェイス(別のsrcファイルで宣言されています)

  7. 7

    シンボルが見つかりません: `javac`コマンドを使用してパブリッククラスjavaに実装されたデフォルトのアクセスインターフェイス(別のsrcファイルで宣言されています)

  8. 8

    Jar ファイル クラスはコマンド プロンプトから実行されますが、QTP のシェル スクリプト オブジェクトを介して実行すると ClassDefFound はありません。

  9. 9

    ファイルの場所にシステムPATHを使用して、WindowsコマンドラインからPythonスクリプトを起動します

  10. 10

    1つのファイルで複数のシェルコマンドを実行し、出力を同じファイルにリダイレクトします

  11. 11

    ファイルタイプのデフォルトアプリケーションを使用して、os / xのコマンドラインから新しいファイルを開きます

  12. 12

    ファイルをマウントして、コンテナkubernetes内のアプリケーションからファイルにアクセスする方法

  13. 13

    スクリーンショットを撮り、タイムスタンプベースの名前で指定した場所に保存し、ファイルパスとファイル名をクリップボードにコピーします

  14. 14

    Jenkinsパイプラインのシェルスクリプトを介してansibleプレイブックを実行すると、エコー出力がバッファリングされ、リアルタイムで表示されません

  15. 15

    シェルコマンドまたはPerlを使用して、ファイルのサブセクションからデータを抽出します

  16. 16

    GCCを使用して、特定のコンパイラフラグを使用してコードファイルの1つのセクションをコンパイルすることは可能ですか?

  17. 17

    3つのファイル(入力として取得)のコンテンツをマージし、シェルスクリプトを使用して表示する方法

  18. 18

    巨大なJavaファイルからメインクラスの名前を返します任意のコマンドライン機能はありますか?

  19. 19

    lstateエラー:Dockerビルドコマンドを使用してカスタムイメージからDockerをビルドしているときにそのようなファイルまたはディレクトリがありません

  20. 20

    すべてのsedコマンドを1つのシェルスクリプトファイルに配置します

  21. 21

    すべてのsedコマンドを1つのシェルスクリプトファイルに配置します

  22. 22

    アンパサンドを使用してシェルの出力をファイルにリダイレクトすると、出力にいくつかの追加コマンドが返されます

  23. 23

    ブランチからのすべてのファイルを(コマンド/スクリプトを使用して)mainにマージしますcleartool

  24. 24

    コマンドラインの特定のリポジトリにアーティファクトの聖霊降臨祭のpomをデプロイしますか?(pomエディションとファイルデプロイなし)

  25. 25

    共通のcreateValueメソッドを定義するパラメーターを持つケースクラスのシェイプレスのジェネリックデフォルトインスタンスを使用してビルドします

  26. 26

    理想的にはコマンドラインを使用して、複数の.csvファイルを1つのマルチシート.xlsスプレッドシートに変換する方法はありますか?

  27. 27

    2つの(パイプされた)シェルコマンドをパラメーターとしてシェル関数に渡します

  28. 28

    Javaプログラムから呼び出されたWindowsコマンドプロンプトを使用して、複数の連続したスペースを含む文字列をパラメータとしてjarファイルに渡します。

  29. 29

    cronjob / mailを使用してファイルを外部クライアントに実行するとphpmailerの添付ファイルが失敗しますが、コマンドラインからスクリプトを実行すると機能します

ホットタグ

アーカイブ