タグ

shに関するudukiyukiaのブックマーク (6)

  • ファイルの存在確認でワイルドカードを使う - Qiita

    はじめに 単一ファイルの存在確認であれば、[ -e file ]で確認が出来ますが、この構文ではワイルドカードが使えず、ほかの方法を模索したのでメモ。 lsのエラーをつかむ方法 ググったときによく出てきたのは、下記のようにls叩いてエラーを拾う方法。一致するものが無い場合にエラー終了(終了ステータス2)することを利用して、判定をしています。 ls /hoge/*.txt >/dev/null 2>&1 if [ $? -ne 0 ]; then # 存在しない場合 else # 存在する場合 fi その他のエラーと分離したい 上の方法で困るのは、エラー終了のときに、まるっとすべて存在しない扱いになってしまうこと。「/bin/ls削除してシェル叩きまっせ」とかいう変態テストでNGになってしまったため、急遽別の方法を模索することに。 そこで採用したのが下記の方法。findの-nameオプション

    ファイルの存在確認でワイルドカードを使う - Qiita
  • ファイルの拡張子を一括で変更する - Qiita

    for filename in *.csv.gz; do > mv $filename ${filename%.csv.gz}.csv; > done

    ファイルの拡張子を一括で変更する - Qiita
  • for 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    for 文の使用方法 for 文とは? for 文は一定回数の繰り返し処理を行う場合に使用するループ制御文である。もしくはある値の集合に対して、それぞれの要素を処理するループ制御文である。 一般的には処理回数や、処理対象となる集合が明確な場合には for 文を使用する。その他の場合は while 文を使用することになる(シェルスクリプトでの for 文は決まった回数のループ処理というよりも、リストに対するループ処理といった方が正しいかもしれない)。 → ループに使用される値のリストと、値リストの各要素がループ毎に設定される変数を指定する。 for 文は値リストに指定された1つ目の値を変数に設定し、do と done の間の処理を実行する。処理後、同様にして値リストに指定された2つ目の値を変数に設定し、再び do と done の間の処理を実行する。3つ目以降も同様にして、全ての値リストが消

    for 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 配列を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → 値のリストで変数を初期化する。 括弧内に値のリストを指定したものを変数に設定することで、その変数を配列として使用することができる。 ※ ksh の場合は set コマンドを使用して配列の設定を行う。括弧を使用した設定方法は使用できないこともあるので、ksh で配列を使用する場合は、set コマンドを使用する。 $ array=(111 "foo" 222 "bar" 333 "foobar") #↑配列に値を設定する。 $ echo $array 111 #↑インデックスを指定しない場合は、先頭の値のみが出力される。 $ echo ${array[@]} 111 foo 222 bar 333 foobar #↑全ての値を出力する場合は、インデックスに「@」を指定する。 ksh の場合は以下のように set コマンドを使用する。 $ set -A array 111 "foo" 222

    配列を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • while 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    while 文の使用方法 while 文とは? while 文は「ある条件が成り立っている間のみ繰り返し処理を実行する」といった、不定回の繰り返し処理を行う場合に使用するループ制御文である。 一般的に処理回数が明確である場合には for 文を用いるが、処理回数が開始時点では不明確な場合はこの while 文を用いる。 while 文は始めに指定された条件式の終了ステータスを判定し、結果が真である場合のみループ処理を継続する。ループ毎に条件式を評価し真であれば処理を実行する。これを繰り返し、条件式が偽になった時点でループ処理をを終了する。 → 処理回数が開始時点では不明確なループ処理には while 文を使用する。 while 文にはループの継続条件となる条件式を指定する。条件式には test コマンドを使用するのが一般的だが、当然その他のコマンドも使用可能である。 while 文により条件

    while 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 複数のファイルのファイル名(拡張子)を一括で変更する。|プログラムメモ

    UNIXでのファイル名変更コマンドは mv file1.cgi file1.txt (file1.cgi を file1.txt という名前に変更する) ですが、これを一括でしようと思って mv *.cgi *.txt としてもエラーとなります。 そこで for文 を使って for fname in *.cgi; do mv $fname ${fname%.cgi}.txt; done とします 参考:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/248chngext.html

  • 1