Hatena::ブログ(Diary)

myhd このページをアンテナに追加 RSSフィード Twitter

みょこym

MY HDD

myhdd

myhd

2011-11-16

psコマンドの結果からプロセスIDを取得するときはcutではなくawkを使う

cutとawkの違いを読み間違えた件について、懺悔というか反省文。


目的:

以下の出力結果からpsコマンドのプロセスID(1234)を取得したい。

$ ps -ef | head -n 3
UID        PID  PPID  C STIME TTY          TIME CMD
myokoym   1234     0  0 12:34 pts/0    00:00:00 ps -ef
myokoym 999999     0  0 12:34 pts/0    00:00:00 head

手順:

該当行をgrepコマンドで抽出し、スペース区切りで2番目のフィールド(カラム)を取得する。


cutの場合

最初はcutを使ってみます。

$ ps -ef | head -n 3 | grep "ps -ef" | cut -d" " -f2

何も出力されません。試しにheadのプロセスIDを取得すると、

$ ps -ef | head -n 3 | grep "head" | cut -d" " -f2
999999

こちらは取れました。どうも、cutだとスペースが連続する場合に上手く取れない様子。スペースの数だけフィールド数が増えてしまっています。

$ ps -ef | head -n 3 | grep "ps -ef" | cut -d" " -f4
1234

ちなみに、cutのデフォルトの区切り文字は「タブ」です。


awkの場合

それに対して、awk(オーク)ではデフォルトで「1個以上の連続スペース」または「タブ」が区切り文字として扱われるため、以下の通り、きちんと取得できます。

$ ps -ef | head -n 3 | grep "ps -ef" | awk '{ print $2 }'
1234

(特殊変数の$1、$2・・・に、1番目のフィールド、2番目のフィールド・・・が入っている)



というわけで、スペース数が不定の場合はcutではなくawkを使うのが賢明だと思います。Mさん、ごめんなさい。今度ワイン一杯おごります。

2011-09-29

Ubuntu11.04の端末にバックスラッシュを表示する方法

Ubuntu11.04日本語環境の端末は、デフォルトではバックスラッシュが半角¥記号で表示されています。しばらくはそのまま使っていたのですが、Linuxならバックスラッシュだろう!と思い立ち、変更できないか挑戦してみました。


調べてみると、使用するフォントに拠るとのこと。昔のUbuntuVLゴシックというものがデフォルトだったそうなので、それを採用することにします。


VL Gothic Font Family


まずはフォントインストールUbuntuソフトウェアセンターから「vlgothic」で検索するか、端末で以下のコマンドを実行します。

$ sudo apt-get install ttf-vlgothic

端末を開いてみると、デフォルトではこの通り。牛さんが残念なことになっています。

f:id:myokoym:20110929004232p:image


端末のフォントは右クリックメニューからプロファイルを選択して変更できます。

f:id:myokoym:20110929004233p:image


フォントの部分をクリックし、VLゴシックを選択。

f:id:myokoym:20110928235022p:image

f:id:myokoym:20110928235023p:image

f:id:myokoym:20110928235024p:image


こちらが変更後。牛さんがきちんと表示されました!

f:id:myokoym:20110929004234p:image


比べてみると、なんだか縦に長くなっています。見やすさはいい勝負かと。

f:id:myokoym:20110929004232p:image:medium:left

f:id:myokoym:20110929004234p:image:medium:left






日本語のフォントも少し特徴的ですが、個人的には嫌いじゃないので満足です。 ;-)

2011-07-03

初スマホ(IS12SH)感想(1)導入編

ついに携帯をスマートフォンにしました。機種はIS12SH(Android au with Google)。

感想やauショップのお姉さんに聞いたことをつらつら書きます。

  • 初期費用0円(ショップによる?自分はオーロラタウンのauショップで)
  • 毎月の上乗せ料金は24回分割で約3000円ー毎月割適用で1700円割引→機種代は実質3万くらい?
  • 今月はダブル定額のままだけど、PCサイトビューア使用時の金額と同じ扱いになる。
  • ISフラットは上記のダブル定額PCサイトビューア使用時の上限額より525円安い。ただし使わなくても定額。
  • 充電器はスマホ用を新たに購入。
  • 充電器はアダプタにUSBが刺さってる作りになってて、それをPCに繋げば通信可。
  • ガラケーからのデータ引継ぎはショップではやってくれない
  • アドレス帳はGMailの連絡先を経由して同期。
  • 具体的には、GMailエクスポートしてから、IS12SHで設定→アカウントと同期→Googleアカウント→連絡先を同期。
  • EZWebが使えなくなるため、有料サービスは事前に解約すると楽。(IS12SHは可能だけど、機種によっては解約不可)
  • ケースと保護シートは、au純正のシリコンケースとマット加工シートを別々に購入。とりあえずこれでしばらく使ってみる。
  • 白の本体に黒のケースつけたら見た目がアンドロイドっぽくなった。3D用のツインカメラが目に見える(笑)

auのEメール(@ezweb.ne.jp)も使えているので、特に問題はなかったです。今は無造作にアプリ入れたりアプリ開発の勉強したりしてます。とりあえずアラームアプリがちゃんと動くことを確認してから寝よう・・


スマートにプログラミング Android入門編

スマートにプログラミング Android入門編