質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

Q&A

解決済

2回答

926閲覧

Shell Scriptにおける指定フォルダ内の並び替え処理について

K_Emi1224

総合スコア1

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

0グッド

0クリップ

投稿2022/12/19 16:31

お世話になります。

シェルスクリプトでの並び替えの挙動についてご質問がございます。シェルを実行できる環境になく、皆様のご回答をお待ちしております。

例として、下記フォルダ(testFolder)に下記のようなファイル名でファイルが存在するとき、

testFolder

  • testFile0004L.txt
  • testFile0005L.txt
  • testFile0006L.txt
  • testFile0010L.txt
  • testFile0011L.txt
  • testFile0001L.txt
  • testFile0002L.txt

下記コマンドでmputコマンドを実施したときの送信順はどうなりますでしょうか?

PARAM_NUM = {1 2 3 4 5 6 7 8 9 0} if ['ls *.txt | wc -l'] then for PARAM in ${PAPAM_NUM[@]} do mput *$(PARAM)L.txt   done

現在、testFolder配下に配置しているファイルを連番(ここでいう連番は各ファイルの最後尾にあるLの前の数字)でmput送信したいと考えています。
※今回であれば、1→2→4→5→6→10→11の順番

上記のフォルダ構成かつ私のソースでは連番1を引っ掛ける前に11を先に引っ掛けてしまうのでは?と考えました。結局のところ、mputコマンドを実施する前にフォルダ内を全てソートすればよいのかとも考えましたが、最善策が何か分からず。。 
当方、かなりの初心者で拙い質問ではございますが、ご回答のほどお待ちしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/12/19 17:08

mput というのは FTP の mput コマンドのことでしょうか?
guest

回答2

0

ベストアンサー

1→2→4→5→6→10→11の順番 にしたいなら

for f in `ls testFile*L.txt` ; do mput $f done

かな。
for f in testFile*L.txt
だと どの順番になるか、はわからない。

`for f in `echo testFile*L.txt | sort `

でもいいかな。
mput がどの様に処理するか、によるけど、もらった argment の順番に送信してくれるなら

mput `ls testFile*L.txt`

で良いようにも。

投稿2022/12/19 23:11

winterboum

総合スコア23347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「こういう順番で処理するためには、どう書いたらいいか?」という質問ではなくて、
「こう書いたら、どういう順番になるか?」という質問ですよね?

数字の前の文字列が全部同一であれば、順番は、数字の前後を省略して書くと、
mput 0001 0011
mput 0002
mput 0004
mput 0005
mput 0006
mput 0010
です。

mput testFile0001L.txt testFile0011L.txtというコマンドラインに対して、どういう順番で処理するかは、mputコマンド次第です。一般的なコマンドには無いようなので独自コマンドですかね。まあ、普通は前から順番だと思いますが。

投稿2022/12/19 16:59

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問