ラベル cygwin の投稿を表示しています。 すべての投稿を表示
ラベル cygwin の投稿を表示しています。 すべての投稿を表示

2011年4月5日火曜日

Cygwin で rename コマンド

(2012.01.19)更新

rename
#!/bin/sh

if [ $# -lt 2 ]; then
  echo "USAGE: $0 /変更対象/変更後/ ファイル名展開のパターン文字列"
  exit 0
fi
RE="$1"
shift 1

# ファイル名が - で始まるとき ./ を先頭に挿入
# ファイル名内の ' を '\\\\'' でクォート
#   →sed('\\'') →mv('\'')
# ファイル名をホールドスペースへ保存
# ファイル名を ' でクォート
# パターンスペースとホールドスペースを交換
# ファイル名を正規表現で変換
# 変換したファイル名を ' でクォート
# 変換したファイル名をホールドスペースへ追記
# パターンスペースとホールドスペースを交換
# 改行をタブに変更してから
# xargs で mv へ送る
while [ $# -gt 0 ]; do
 echo "$1";
 shift 1
done | sed -e "
s/^-/.\/-/
s/'/'\\\\''/g
h
s/^/'/
s/$/'/
x
s$RE
s/^/'/
s/$/'/
H
x
s/\n/\t/
" | xargs -L 1 mv -v

(2011.04.05)

rename コマンドを実行したら "bash: rename: command not found"。cygwin.com のパッケージ検索ページでも見つからない。

Cygwin にはどうやら rename コマンドがないらしいので、下記ページを参考に sed ベースで書き換えてみる。

  • 【Linux Tips】 テキストファイルの一括置き換え/ファイル名の一括置き換え: 日々此精進
    → http://murakan.cocolog-nifty.com/blog/2009/11/linux-tips-5aa7.html
/bin/bash
$ /bin/ls -d ファイル名展開のパターン文字列 | sed -e '
s/ /\\ /g
h
s/変更対象/変更後/
x
G
s/\n/\t/
' | xargs -L 1 mv

ファイル名が .txt で終わるファイルの前に今日の日付を追加するなら、

/bin/bash
/bin/ls -d  *\.txt | sed -e "
s/ /\\ /g
h
s/^/$(date +"%y%m%d")-/
x
G
s/\n/\t/
" | xargs -L 1 mv

2010年10月4日月曜日

Cygwin に後から追加したパッケージ一覧

command notes Category Package verified
gpg GNU Privacy Guard Utils gnupg .
wget GNU Wget Net wget .
tidy HTML Tidy Web tidy .
xsltproc XSLT Processor Libs libxslt .
ssh Secure Shell Net OpenSSH .
expect Expect Interpreters expect .
clear Utils ncurses .
openssl The OpenSSL base environment Net openssl .
python Interpriter python .
vi Vi IMProved - enhanced vi editor Editors vim .
httping Ping-like program for http-requests Web httping .
ping A basic network tool to test IP network conectivity Net ping 2014.09.21

必要なファイルのパッケージがわからないときは、次のウェブページでパッケージを探してから、Cygwin のインストールのときの(動きがおそすぎて泣けてくる)パッケージ検索画面で探す。

Setup Package Search
http://cygwin.com/packages/ 必要なファイルがどのパッケージに含まれているかを検索できるページ テキストボックスに "bin/clear" のように入力して検索する

2010年4月2日金曜日

xslt プロセッサ

Windows

msxsl.exe
ダウンロードページは Google で site:microsoft.com msxsl.exe を検索

Linux

xsltproc

Cygwin

xsltproc は Text パッケージの libxslt 含まれている。