68user's page 掲示板

Prev< No. 4919〜4920> Next  [最新発言に戻る] [過去ログ一覧]
No. 4919 # べた 2008/07/08 (火) 22:55:38
>4916
ありがとうございます。

expr index "${email}" @

echo ${email} | awk '{ print substr($0,1,index($0,"@")-1)}'

ANS=`echo ${email} | awk '{printf "%s",index($0,"@")}'`
「@」が最初に現れた位置を取得して、cut で取り出し
echo ${email} | cut -c1-`expr ${ANS} - 1`
echo ${email} | cut -c`expr ${ANS} + 1`

awkや、1回で取り出したかったので、expr でやったのですが、
expr index の形式使えないので、awkでやったのですが、

sed で置換する方法は気が付きませんでした。
ためして見ます。

No. 4920 # 68user 2008/07/09 (水) 01:38:42
>>4918 べた
/usr/local/bin/iconv は GNU の libconv 同梱の iconv コマンド、
/usr/bin/iconv は Solaris 標準の iconv コマンドではないかと
思います。

GNU 版であれば、--version オプションを使うことで
    % iconv --version
    iconv (GNU libc) 2.3.4
    Copyright (C) 2005 Free Software Foundation, Inc.
    (略)
といった表示が得られるかと思います。

以下は Solaris 版と GNU 版の違いであったとして、という前提ですが、

機能差で選ぶなら↓を比較 (昔の Solaris 版 iconv は、不正なバイト列が
あった場合即終了だった気がするのですが、現在はスキップという選択肢も
選べるんですかね? であればそれほど機能差はないかも)
    http://docs.sun.com/app/docs/doc/819-1210/6n3j74jpk?a=view
    http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.1.html

エンコーディングの多さで選ぶなら、/usr/local/bin/iconv -l と
/usr/lib/iconv/iconv_data を比較。特に CP932 や UTF-8 などが絡む
場合は、手持ちの全ファイルを変換して結果を調べるくらいはやった
方がよいかと思います。

後は GNU が好きか、Solaris の世界で固めるのが好きか、でしょうか。

Prev< No. 4919〜4920> Next  [最新発言に戻る] [過去ログ一覧]