2013年9月27日金曜日


フルパスのファイル名をPATHとファイル名
拡張子とファイル名に分割する正規表現を試してみた。
もっと良い方法があるかも?!

シェルスクリプト
stimac:~ st$ cat test2.sh
#!/bin/bash
test_file=/Users/st/Desktop/rails3book-121108/chapter1/README.rdoc
echo ${test_file}
echo ${test_file} | sed 's/.*\///g'
echo ${test_file} | sed 's/\/[^/]*$//g'
echo ${test_file} | sed 's/.*\.//g'
echo ${test_file} | sed 's/.*\///g' | sed 's/\.[^.]*$//g'


実行結果

stimac:~ st$ sh test2.sh
/Users/st/Desktop/rails3book-121108/chapter1/README.rdoc
README.rdoc
/Users/st/Desktop/rails3book-121108/chapter1
rdoc
README
stimac:~ st$


BSDな人にはこんな方法もあるようだ?!

stimac:~ st$ cat test1.sh

#!/bin/sh

test_path="/Users/st/Desktop/rails3book-121108/chapter1/README.rdoc"

string_filename=${test_path##*/}
string_filename_without_extension=${string_filename%.*}
string_path=${test_path%/*}
string_extension=${test_path##*.}

echo ${string_filename}
echo ${string_filename_without_extension}
echo ${string_path}
echo ${string_extension}


実行結果

stimac:~ st$ sh test1.sh

README.rdoc
README
/Users/st/Desktop/rails3book-121108/chapter1
rdoc
stimac:chapter1 st$

こちらが正当なのだろう。
正規表現を覚えるか?
暗黙の使い方を覚えられれば苦労はないな。


2013年3月2日土曜日

MAC で日本語テキストファイルの文字数を調べる。


以下のコマンドで全角文字も1文字としての文字数が得られます。

iconv -t EUC-JP -f UTF-8 調べたいテキストファイル名 | wc | awk '{print $3/2}'

詳細は
wcではUTF-8の全角文字1文字が3となります。
単純に3で割るとアレレという数字になってしまいました。
これで完全とは言えませんがとりあえずコピペでお試しください。

原稿用紙に納めるとき、文章の整理が上手になった気がします。



2013年2月20日水曜日

fedora17 vmtool 3.7.9-101.fc17.x86_64

fedora17


vmwareで共有が見えない(使えない)時
vmtoolをインストールしてもツールが再コンパイルされないとき

vmtoolがうまくインストールできない。
vmtoolの共有が動作しない


vmware-tools-distrib がうまくインストールできない。

せっかちな人は
rootになって以下のコマンドを実行してください。

 (cd /usr/src/kernels/`uname -r`/include/linux;ln -s ../generated/uapi/linux/version.h);/usr/bin/vmware-config-tools.pl

しばらくはカーネルのバージョンがちょくちょく変わるのでシェルにしました。

ーーー詳細は

以下の様なカーネルのヘッダーを見つける事が出来ない、できていない。
ーー
Searching for a valid kernel header path...
The path "" is not a valid path to the 3.7.3-101.fc17.x86_64 kernel headers.
Would you like to change it? [yes]

--
症状、現象、原因を確認する

The path "" is not a valid
とカーネルのincludeパスが拾えていない。

現在のカーネルバージョンを確認する。
$ uname -r
3.7.6-102.fc17.i686
$ su
passwd:XXXXX

カーネルの確認
# ls /usr/src/kernels/
3.6.11-5.fc17.i686  3.7.3-101.fc17.i686  3.7.6-102.fc17.i686

64ビットの方はこんな感じ
 #  ls /usr/src/kernels/
3.6.11-5.fc17.x86_64  3.7.3-101.fc17.x86_64  3.7.6-102.fc17.x86_64

3.7.6-102.fc17.i686 がある事を確認する。

現在のカーネルのインクリュードを見つけるように強引に修正する。
# cd /usr/src/kernels/”unameで得られた値”/include/linux
$ uname -r
3.7.6-102.fc17.i686
この場合
# cd /usr/src/kernels/3.7.6-102.fc17.i686/include/linux

バージョンヘッダーをシンボリックリンクしてあげる。
# ln -s ../generated/uapi/linux/version.h

再構築 vmware-config-tools.pl を実行する。
/usr/local/bin か /usr/bin のどちらか 
# /usr/local/bin/vmware-config-tools.pl
か
# /usr/bin/vmware-config-tools.pl
のどちらかだと思う。

vmware-config-tools.pl を探して実行する。
私の場合は /usr/bin でした。
# find /usr -name vmware-config-tools.pl -print
ln -s ../generated/uapi/linux/version.h

実行
# /usr/bin/vmware-config-tools.pl
Initializing...

共有を設定して見えることを確認する。

今後もカーネルのバージョンが上がるたびに同様の問題が生じる可能性があるので、適宜カーネルのバージョンを読み替えて実行すればよいと思います。



2013年2月1日金曜日

MacでZipファイルにパスワードをかける。

MacでZipファイルにパスワードをかける。
# ls
foo.txt
# zip foo.zip foo.txt
# ls
foo.txt     foo.zip

パスワードをかける。

# ls
foo.txt     foo.zip

# zipcloak foo.zip
Enter password:XXXXX
Verify password:XXXXX
encrypting: foo.zip
# ls
foo.txt     foo.zip

最初からパスワードをかける。
# ls
foo.txt
# zip -e foo.txt

Enter password:XXXXX
Verify password:XXXXX
  adding: foo.txt ( deflated xxx)
# ls
foo.txt     foo.zip