タグ

bashとlinuxに関するzetfsのブックマーク (11)

  • Linuxでファイル名の一括変換を行う方法

    Linuxでファイル名の一括変換を行う方法を紹介します。 1.問題点 あるディレクトリに次の10ファイル(あるいはそれ以上)があるとします。 aaa.txt bbb.txt ccc.txt ddd.txt eee.txt fff.txt ggg.txt hhh.txt iii.txt jjj.txt これらのファイルの拡張子をすべて「.html」に変更したいのですが、mvコマンドで1ファイルずつ、 $ mv aaa.txt aaa.html $ mv bbb.txt bbb.html : とリネームを繰り返すのは面倒です。 ということで、ファイル名の一括変換について紹介します。 2.renameコマンドで一括置換する Linuxにはrenameコマンドが用意されている場合があるので、利用できる場合はこれで一括変換が可能です。 $ rename .txt .html * フォーマットは次のと

    Linuxでファイル名の一括変換を行う方法
  • sedコマンドでファイルを上書き編集 – OpenGroove

    標題のテーマ、今までリダイレクト使ってまどろっこしいことしていた。 # sed -e "s/AAA/ZZZ/g" INFILE.txt > OUTFILE.txt # cp OUTFILE.txt INFILE.txt つまり、一度OUTFILE.txtに置換内容を吐き出してから、OUTFILE.txtをオリジナルのINFILE.txtに反映、とするやり方。しかし!-iオプションを使えば断然スマートにできることを今さら知る。 # sed -i -e "s/AAA/ZZZ/g" INFILE.txt これだけで、対象ファイルが上書き編集される。これにはちょっと感動。 以下のようにすればバックアップファイルもとってくれる。-iとダブルクォーテーションの間は詰める。 # sed -i".org" -e "s/AAA/ZZZ/g" INFILE.txt これをどういう時に使いたいかというと、通常の

  • UNIXの部屋 検索-リダイレクト

    最終更新 2019-01-27 UNIX/Linux のシェル sh・bash・csh・tcsh のリダイレクトを説明する。ファイルへの出力、コマンド出力を別のコマンドの入力とする、標準入力・標準出力・標準エラー出力、パイプなどもあわせて説明する。

  • findコマンドの使い方: UNIX/Linuxの部屋

    最終更新 2019-01-22 UNIX/Linux の find コマンドは、ファイル名・タイムスタンプ・ファイルサイズ・オーナー・グループ・ファイルタイプなどを元に、ファイルやディレクトリを検索するコマンドである。AND・OR の組み合わせや正規表現が使えたり、検索だけではなくコマンドの実行も可能など、非常に強力なコマンドである。

    findコマンドの使い方: UNIX/Linuxの部屋
  • 変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → 他のプログラミング言語と同様に = を使用する。 シェルスクリプトでも C言語などと同様に = を使用することで変数に値を設定することができる。ただし、C言語とは違い = の前後にスペースがあってはいけない。 また、変数名の大文字と小文字は区別されるため変数 VAR と変数 var は別物として扱われる。さらにシェル変数に「型」は存在しないので、文字列や数値を区別なく設定できる。 ポイントをまとめると以下のとおりとなる。 = を使う 値の設定時は変数名の先頭に $ を付けない ($ は参照時のみ) = の前後にスペースを入れない (前後にスペースがあるとエラー) 型は存在しない (declare コマンドや typeset コマンドで似たようなことができるが推奨はしない) 変数名の大文字・小文字は区別される (VAR と var は別物) 特に「2」は初心者が犯しがちなミスなので注意す

    変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス
    zetfs
    zetfs 2013/06/18
    特殊変数
  • while 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス

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

    while 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス
    zetfs
    zetfs 2013/02/27
    while ループ
  • bash で連想配列

    どうしてもシェルで連想配列が使いたければ zsh でも使えばいいんでしょうが、修行の一環として bash で連想配列もどきを作ってみました。 ※追記 bash 4.0 から連想配列が導入されたみたいです。が、キーの一覧を取得する方法が見当たりません。declare -p で連想配列の中身を見ることはできますが、厳しいです。詳細は info bash を見て下さい。 以前 “ゲームで極める シェルスクリプトスーパーテクニック” というを読んだんですが、そこで確か配列を eval の力で実装してたと思います。それが基になってます。 #!/bin/bash array_get_index () { if [ $# -ne 2 ]; then echo "usage: array_get_index array val" exit 1 fi local len eval 'len=${#'"$1

    bash で連想配列
    zetfs
    zetfs 2013/02/27
    連想配列 ハッシュ
  • 入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    入力と出力 リダイレクションとパイプ コマンドの実行結果は通常、標準出力であるディスプレイに出力される。この実行結果はリダイレクション(>、>>)やパイプ(|)を使用することにより、ディスプレイではなくテキストファイルやコマンドに対して出力するように切り替えることができる。 また、リダイレクションはコマンドの出力先をテキストファイルに切り替える以外にも、これとは逆にコマンドへの入力元をテキストファイルに切り替えることもできる。 なお、リダイレクションとパイプは次のように使い分ける。 リダイレクション データを渡す対象がファイルである場合はリダイレクションを使用する。 パイプ データを渡す対象がコマンドである場合はパイプを使用する。 リダイレクション [>, », <] コマンドの出力を file へ上書きする → コマンドの実行結果の出力先を、ディスプレイからファイルへ切り替えたい場合は、

    入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス
    zetfs
    zetfs 2013/02/14
    ファイル出力
  • test

    test コマンド ファイル形式のチェックや数値・文字列比較を行うコマンド 構文 test [条件] 条件 -b ファイル名:指定したファイルがブロックデバイスファイルなら真 -c ファイル名:指定したファイルがキャラクタファイルなら真 -d ファイル名:指定したファイルがディレクトリなら真 -f ファイル名:指定したファイルが通常ファイルなら真 -L ファイル名:指定したファイルがシンボリックリンクなら真 -h ファイル名:-Lと同じ -p ファイル名:指定したファイルが名前付きパイプなら真 -S ファイル名:指定したファイルがソケットなら真 -t  ファイル名:指定したファイルディスリプタが端末で開いている -g ファイル名:指定したファイルがsed gidされているなら真 -k ファイル名:指定したファイルにskickyビットで立っているなら真 -r ファイル名:指定したファイルが読

    zetfs
    zetfs 2013/02/14
    testコマンドの条件一覧
  • シェルスクリプト(bash) - Hirotake Itoh's memo by PukiWiki

    CUIの世界で暮らす場合、シェルの使いこなしで作業効率は桁違いに変わる。シェルは一種類だけではないが、シェルスクリプトの観点からはsh系とcsh系に分けられる。sh系であるbash(zshでもOK?)をメインに使ってみることにする。純粋な /bin/sh を使うと、declareが使えず、exprとなるのが面倒。 link * ステップ・バイ・ステップ・シェルスクリプト bashで始めるシェルスクリプト基礎の基礎 シェルスクリプトの基礎 画像整理における実例 * あえて全部別々に記述してみた。 jpegファイルで、大文字の拡張子を小文字にする(JPG -> jpg) * for filename in *.JPG do mv ${filename} ${filename%JPG}jpg done ダメ写真を削除したなどで、連番が歯抜けとなったjpegファイル群に番号を振りなおす * dec

    zetfs
    zetfs 2013/02/07
    パターンマッチ
  • シェルスクリプト(Bash)

    シェルスクリプトとはコマンドやシェルの組み込みコマンドなどをファイルに記述し、実行できるようにしたものである。 またプログラムの制御構造なども使用でき、柔軟な処理が可能であり、/etc/rc.d/initd/ディレクトリ内の起動スクリプトなどはシェルスクリプトである。 シェルスクリプトを実行するには実行権限および読み込み権限が必要です。 またシェルスクリプトファイルの1行目にはシェルスクリプトを実行するシェルのパスを記述します。 スクリプトファイル内でも、シェル変数を定義することができる。またその変数を参照する場合は変数名の前に" $ "を 付けることで参照できる。変数名に使用できる文字は英数字および" _ "(アンダーバー)であり先頭は英字を使用しなくてはならない。

  • 1