自己紹介

自分の写真

朝ネスのマスターやってる人。
巷では「けもネス」って呼ばれてるけど、「朝ネス」です。
どうか間違えないでください。

2015年2月26日木曜日

Vagrantで簡単にGUIなLinuxの仮想環境を作る!

仮想環境とかその昔にVMとかVMWareとか聞いて生きてきたけど、
最近無料で仮想環境が簡単に作れるので紹介。

まず仮想化支援ソフトとしてVagrant、仮想化ソフトとしてVirtualboxを使いますので、
以下からダウンロードします。Virtualboxはリンク先から「こちら(USサイト)」からさらに
飛ばないといけませんね。注意です。

Vagrantのダウンロードページ
http://lab.raqda.com/vagrant/ →なくなってた
https://www.vagrantup.com/downloads.html

Virtualboxダウンロードページ
http://www.oracle.com/technetwork/jp/server-storage/virtualbox/downloads/index.html


Vagrantには日本語ドキュメントページがありますので、
操作一覧はここを参照すると良いでしょう。

Vagrantの日本語ドキュメントページ
http://lab.raqda.com/vagrant/



ダウンロードし、インストールしたら始めましょう。
たしかVirtualboxはインストール中に再起動を要求されるので、
素直に再起動できるようにしときましょう。アポフィジス……ッ!!



次にProject Directoryの作成です。今回はWindows7 64bitで説明します。



とりあえずUserのディレクトリ内にでも作りましょう。
エクスプローラーを起動して以下に行きましょう。

C:\Users\ユーザ名\

次にファイルをディレクトリフォルダを作りましょう。名前は「VM」にでもしときましょう。

C:\Users\ユーザ名\VM

作れたら、コマンドプロンプトを起動しましょう。そしたら

cd /Users/ユーザ名/VM

でさっき作ったVMファイルの中に移動しましょう。
そして以下のコードを実行しましょう。(※ここから下はコマンドプロンプト上での実行です)

vagrant box add Ubuntu32_14_04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-i386-vagrant-disk1.box


VagrantにUbuntu14.04の32bitバージョンを入れます。
他にも色々あります。主にVagrantboxという所から同じくLinuxのCentOSもとってこれます。

今回はGUIなLinuxを仮想環境に導入することが目的なので
「Official Ubuntu 14.04 daily Cloud Image i386」を導入しました。
ちなみに開発バージョンですね。バグや不具合テンコ盛りでも気にしないように。

次に、以下のコードを実行します。

vagrant init Ubuntu32_14_04

そうすろと初期化が実行され、使える状態になります。
では、仮想環境を立ち上げましょう。実行コードは以下になります。

vagrant up

以上で立ち上がりました。立ち上がりの確認は

vagrant status

で確認できます。起動してましたら「running」と出ます。
(※ここまでがコマンドプロンプト上での実行です)

では仮想環境に接続しましょう。
ターミナル(teratermとかpoderosa)を立ち上げて下記情報で接続します。
WinSCPも同じように接続できますよ。私はputtyで接続しました。

host : localhost
port : 2222
id : vagrant
pw : vagrant


このままではただのCUIなLinuxですので、簡単な設定をしてGUIにしましょう。
以下はターミナルのコマンドになります。
まずはスーパーユーザになります。

vagrant@vagrant-ubuntu-trusty-32:~$ su
Password:


パスワードが聞かれますので「vagrant」と打ちましょう。

root@vagrant-ubuntu-trusty-32:/home/vagrant#

以上のようになっていたらroot権限使いたい放題です。
では早速GUIにするために色々ダウンロードします。

apt-get install xfce4
add-apt-repository ppa:gnome3-team/gnome3
apt-get update
apt-get install gnome-shell
apt-get install ubuntu-desktop
apt-get install gdm
dpkg-reconfigure gdm

一行づつ入れていきましょう。途中で「Yes/No?」が聞かれますので「Y」と打って入れます。
たぶん小文字の「y」じゃダメかもしれません。一応大文字のYと打っておきましょう。
また、2つめで長い説明の選択肢がでてきますのでそのままEnterを押します。
また、後半にエラースクリーンのような赤紫の画面が出ますが、これはただの選択です。


全て問題なく実行し終わったらVagrantで停止させます。

vagrant halt

これでLinuxはGUIモードですね。ただ、Vagrantから起動するとウィンドウが出ないので
Virtualboxから直接起動します。


これで完了です。



正直Virtualbox単体でも可能なのですが。
Vagrantについて知ってもらうのも含め、このような形にしました。
Vagrantについては他にも色々あるのですが、それはまた今度。





2015年2月25日水曜日

SCFH DSFでモニタキャプチャできねえって時。「ManyCamの薦め」


はじまり

ツイキャスとかステカムとかで作業upする時にSCFH DSFで
webブラウザとかflashPlayerが反応しないとかよくある。
よくあり過ぎて困る。

ニコ生デスクトップキャプチャーだと反応してくれるけど
マルチモニタ対応してなくて、プライマリモニタ以外、
サブディスプレイに範囲を持っていけないとか指定できない。

ManyCamも大体のwebブラウザに反応するが、範囲指定に難がある。
恐らく細かい指定は有料版で解放される「拡張範囲」を
使用しなければならないだろう(脳内ソース)

理想的なのはSCFH DSFだ、モニタ上を自由に、直感的にキャプチャでき、
しかも一応程度にモニタを跨いだ表示も可能だ(脳内ソース)
しかし画面が一切映らないのであれば無いのも同然となろう。え?私の腕が悪い?すまねえ……。



てんかんき

とゆーわけでManyCamにあるカメラのキャプチャをパクってくる機能があってですね、
そしてSCFH DSFはManyCamの「これ」に反応しやすいんですよ。
つまりSCFH DSFのキャプチャをManyCamでパクり、ManyCamで映すという方法。


要するに、ManyCamは中継地点に出来るわけでして、ManyCamなら
大体のWebブラウザに反応するという特性を活かし、SCFH DSFでキャプチャした
映像をManyCamに渡し、ManyCamがWebブラウザのFlashPlayerに渡すわけですね。
なんだかアダプターみたいですね、ManyCam。


これには欠点があって、当たり前のようにメモリ食うのと、CPUぱぅわーも食うので、
パソコンが強くないといけない。ついでに多分画質落ちちゃう(脳内ソース)。
キャプチャ画像送るときに圧縮掛けていると思うので、これが+1回されると。


↓ManyCamの公式HPです。ここからすぐにManyCamがダウンロードできますよ。
http://manycam.com/

↓SCFH DSFのダウンロードページ。一応貼っておきますね。
http://mosax.sakura.ne.jp/yp4g/fswiki.cgi?page=SCFH+DSF




以下どうでもいい事


このBloggerすごいよね。レイアウトの変更が簡単やで。
ちなみにFHDの半分で見れるように横幅を2015/2/25には調節してあるので、
こう、作業の片手間に読めるようになってるよ。たぶんね。






オチはうちの子の中で最強なガーネットさんの
かっこいいポーズということで。
「暗い写真を貼りますと明るく補正されるのですね」
すげーいい感じに補正されてる、さすがblogger。



2015年2月24日火曜日

秋葉原店のヨドバシにCintiq Companion2が体験できたー。


秋葉原店のヨドバシにCintiq Companion2が体験できたー。


なんとなくヨドバシ行ってきた。帰りに雨に降られて嫌な思いをした。
ついでに大きなお布団も探したけど見つからねえ。アゾンに行ったらアイリペ本が再販してた。
欲しい。
アゾンのアイリペ本貴重なのかそうでないのか分かんねえな(再販が偶にあって)
地味にクリペが載って有った、ヨドバシすげえ。折角なので軽く環境設定して試してみました。
キャンバス左右反転上下反転もきっちりコマンドバーに登録しときました。(SAI厨)
本当、SAIの様な画面設定に簡単に出来るのはうれしいですね。CC2の話じゃないですね。


所でCC2は色々変わってるとか情報があるけど、解像度がWQHDになっているのは
220ppiで、アイコンサイズとか文字とか結構ぎりぎり感があります。でもまだ分かるからいい感じ。
端っこのズレは数ミリずれる、特に押そうとしたらずれる、視差の影響もあるかも?
ぱぱってアイコンを押すには慣れるか、タッチで。お父さんスイッチー


タッチ機能はやっぱすごいですね、クリペですごい威力です。マウス要らねー。
デーモンハンド(左利き)なら、マウスで移動とか拡大縮小とか簡単に出来るので、
マウス無いとまじ辛いのですが、
タッチ機能でマウス要らねってなるんですよね。
右利きなら左手マウス使いじゃないとできない芸当ですが。
なんで左利きマウスって少ないのか。でもユニバーサルならいっぱいありますし、
ボタンの切り替えもwinならデフォルトで出来ますから問題ないですけどね。
ペンとか箸とか使うのは左です。マウスは慣れですね、
小学生の頃は右でマウスは上手く扱えませんでした。
意外と左とか右とか適当だと思います。
どっちでもタッチ機能あればマウス使う機会少なくなりますし。
どうでもいいけどCCからタッチ機能ありますけどCCでクリペ体験無いので知りません。
CC2の話じゃないですね。


解像度がWQHDなので作業領域が1.3*1.3で1.7倍に!
ついでに縦の長さも1.3倍なので、カラーサークルとかブラシサイズとか広々使えます、縦だけは。
レイヤーもいっぱい表示できますね、縦だけは。
クリペで作業領域の話は無くなりそうですね。無くならないだろうが。
ともあれツールへのアクセス性が上がるのは良い事ですね。
そして表示倍率100%で見える範囲が広くなったりするのも良いですね。
反面高解像度化で光度を維持するのに消費電圧が上がって、7.5Vじゃ無理だから
出力電圧上げたから、電池そのまま電流容量減ったと考えられる、いつも通り脳内ソース。
それでも3時間以上持てばいいのが最近ですねサーフィスちゃんプロを見つつ


DELLの24インチ4Kモニタが5万円台(Pシリーズですね)になり、
かなり素敵になってきてますので、とりあえずwin版クリスタは高ppiに対応をですね。
どうでもいいですけど高々FHDの2倍程度のWQHDと4倍の4Kで、
最安値段の差が1万円ってどうなん。需要と供給の差です。
テレビのせいでFHDモニタが流行りすぎたのでは。
この後4Kがまた供給過多になるのか。別にテレビ関係ないのかな。
CC2の話じゃないですね。


あと感じたのは、ペンの反応がクリック時に0.1秒くらい遅れることですね。
恐らくOS側で何らかしら設定すれば糞遅延解決しますが、めんどかったのでしませんでした。
どうでもいいですけどポインタ位置は手振れ補正に追従しないようにしました。(SAI厨)
CC2の話じゃないですね。


…てか、店頭体験じゃ解像度以外にあんまり信用できる情報取れなくね、
電池持ちとか信頼できる情報取れなくね。店員がガチ勢とか普通は無いし。
でも解像度が上がってどんな感じなのかは分かったからいいや。


それとCintiq27QHDもてきとーに試したけど。
何となく描きやすくなってる感がする。それとタッチでアイコン押せて素晴らしいですね。
こっちも欲しくなってきます。買えないけど。32万!
置く空間ありませんしね。狭い机の上にもぎりぎり置ける15QHDまだですか?
もう新型Cintiqはまた数年後って感じですかね。去年はスタイラス系一色だった気がするので。
でもCintiqに力入れてる感じがあります。3年後くらいは27インチ4Kくるのか楽しみ。
…アマゾンの価格を見てると、Android版がなんか外出してますね。11万くらいですね。
13HDと今1万円くらいしか差が無い。まるでタッチ機能付き13HDじゃないですか。
タッチ機能あると、タッチ用に画面表面に白い点々が付いてくるから、
そういう嫌だとタッチなしのほうがよさそう。安いし。


WQHDだと
ツール群を縦に広々配置できるのは良いですね、作業領域も増えますし。
FHDですとかなり縦がギリギリですので。



以下どうでもいい話


充電に必要なW数が変わってますね。仕様ではDC19V,4.74A,90Wとなってますね。
そこら辺の充電器は19Vで3.5A程度しか出ないのでこれはアカンみたいな感じですね。
一個前はDC19V,1.58A,65Wなのでこれはこれで無いような気がする。
オームの法則から充電機器の最少抵抗値わかるから、
色々計測して追加で内部抵抗増やしてもいいんじゃね。
ノートンの定理あたりで電源電圧と内部抵抗の値の方程式が出るし、
問題は全部脳内ソースで、しかもやったことないという糞具合。
モバイルバッテリーってマジでどうなってるんだろうね。電流とか電圧とか。
4.5Aでるモバイルバッテリーあったね、パワーバンクEXってやつ。19Vで4.5Aでるのか知らんけど。
一番確実なのは、パワーポンドコネクトで繋ぐ事かな?かさばるってレベルじゃないけど。


※正確には縦横4/3倍で面積16/9倍ですね、縦横約1.33倍とか面積約1.77倍です。
約1.8倍とみてもいいけどなんか負けた気分に。
どうせなら縦横約√2倍で面積約2倍って大嘘ついてもいいんじゃね。


※日記とかなので気にしない。


※13.3インチをそのまま27インチならだいたい4Kじゃないですかー。これは布石に違いない。
15.6インチWQHDモニタってあまり見つからない。なぜか4Kは見つかるけど。そこまで見つからない。
…27QHDを小さくした感じで、15.6インチで片側だけに磁石用意して,
重さ4kgくらいの欲しいような要らないような。
前面ガラスで、ファンクションは片側だけで、左利きはひっくり返せ、4kgだがな!みたいな。
まあ、最初だけだし、設置するのって。
視差は減らしてくださいお願いします(最近慣れてきた)、
縦横のサイズは21.5インチモニタくらいにするといいような。
4Kだと282ppiでWQHDだと188ppiですね、220ppiでかなり私の限界なのに、
282ppiは私無理そう、アイコンとか文字が。
WQHDならppiに余裕がでてきますねタッチ精度も気持ち良くなります、気持ちだけ。
税抜きで、タッチ有が20万円、無しが17万円くらいだと競合するのは22HDくらいですね。
大きさ的にも価格的にも。
13HDが10万円だし、一時期8万下回って7万5千円とあったな。何があったし。
Value版が18万円くらい、Standardが22万円くらい。27QHDが27万円でタッチ無し。
2年半後くらいに間の15万円くらいの所に何かくるのかな。



後、神姫がまた販売されますね、Box買うことが条件だけど。あと武装なしだったような気がする。
でも素体1体8千円って安いよね。でもアニメと同じチューニング仕様と思うと微妙。



「なぜ爆発してるんだ……」

爆発オチってことで。
ストラーフ2号ちゃん、名前はまだ無い。
「いつまでこの腕なんだ」
いつまでもです。









2015年2月23日月曜日

こんな時に自作PC








自作PC、聞いただけで魅力的な響きです。
ずーっと


  • お値段10万円以下
  • フルHDで3画面
  • グラボ大きいの挿せる、何となく2枚挿しも出来る
  • CPUはオーバークロック出来る
  • HDDとかSSDとか4個くらい付けられる


こんな感じのPC探してたんだけど、中々通販じゃ扱って無くて。
じゃあもう自作するしかねえ!ということで。

そして自作して分かった事、躓いた事があったのでメモ。



なんといっても自作の魅力は


  1. 僕の考えたPCが作れる動くとは言ってない
  2. PCのパーツの種類がなんとなく分かるようになる
  3. パーツが増える
  4. おまけで何かの知識が付く場合もある


「①」は言うまでもなく、「②」は初自作としてはうれしい所でした。
「③」は初めてパーツの不良が来た時のお供ですね、
どのパーツが不良なのか分からないから、2つ、3つ買う
不良じゃないパーツが見つかる、余る。


とゆーわけで買ったパーツ

  • マザボ:ASUS , Z87 Plus  , 10k
  • グラボ:GIGABYTE . GTX750ti 2GB , 18k
  • メモリ:IO DATA , PC3-128000 8GB*2(16GB) , 20k
  • 電源:FSP , 750W RA-750 , 8k
  • PCケース:ZALMAN , Z12 Plus , 8k
  • CPU:Intel , Pentium G3258 , 8k
  • SSD:crucial , CT512MX100 (512GB) ,26k
  • OS:Windows7 Pro 64bit , 20k

合計11万円くらい
※この後不良があって合計13万円になりますが気にしないでください。


不良に当たった見事に不良にぶち当たりました。PC起動しません。
ググった結果、「自作 最小構成」の知識を得たので早速やりました。
普通に起動しません。パーツ変えるにもメインPCはLenovoH550なのでメモリくらいしか持ってこれません。
メモリ付け替えて起動、しない。これで電源かマザボかCPUかメモリ相性かなんだけど、
ここで兄のPC借りて、電源だけ持ってきて起動、しない。マザボかCPUかメモリ相性だけど、


  • CPUは不良率が低い(という噂をググって知った)
  • メモリ相性による起動不可も、マザボと電源に比べれば、発生率は低い(脳内ソース)


電源は付け替えてるからまず生きてる、マザボじゃね?
メモリ相性はググってもあまり無かったので、除外。
とかくマザボ不良の可能性が高かったからマザボとCPUだけ買ってきました.
CPU8千円で安いし…

  • マザボ:GIGABYTE , GA-Z97X-Gaming 3 , 13k
  • CPU:Intel , Pentium G3258 , 8k

で、マザボだけ交換して起動、した。しました。
そしてCPUが1個余りました。やっぱCPUは壊れにくいのでは?


結局マザボと電源とかの初期不良率が高いのは、
ツクモとかで保障とかもらって買った方が良いですね。
この後しばらくしてコールドスタートが出来なくなりました。
起動したら必ずフリーズするわけで。再起動も必ずフリーズする。
ホットスタートは可能なんですが、偶に落ちます。落ちてます。
電源が足りないとかじゃない。
ググった結果これは電源の不良らしいのでまたいつか電源買う時が来ますね。
一応BIOS起動にログイン画面までは確実にたどり付けるのでチェック用になりますね。
これはひどい。


どうでもいいけどインターネット接続に手間取った
PCにそのままLANぶっさしても認識しなくて、
これはもしかするとwindowsUpdateしないといけない系?って思って、
何となく買ってたbuffaloのUSB型無線機器があったので、そいつをDVDでインスコ、
使えるようにして、インターネットにつなぎました。
そしてWinUpdしつつ、マザボに付いてきたDVDの中身も居れてました。
そしたらなんか有線で繋げられるように。
今思うとLANアダプタもマザボ管轄なんだから、普通に考えてマザボのDVDですよね。




ところで、
SSDじゃなくてもHDDでもいいですね、今なら8千円程度で買えるので。
私は手軽にOCしたかったのですが、まさかGIGABYTEのマザボちゃん簡単に
OC出来るようにしてくれるのは知らなかったです。
GIGABYTE信者になりそうですね。ASUS信者止めます。



メモリ16GBにしたのはいいのですが、足りないですね。
アポフィジスに8GB程度食わせているので、ウェブブラウザで3GB食われて、
システムに2GB食われると結構厳しい所があります。
ゲームでも2GBは食われる事想定しないといけませんし。
いつになったらメモリ4チャンネルが安くなりますか?
それとゲームして思ったのはCPUぱぅわーが圧倒的に足りない。
2コアでは足りないですね。4コアのi5かi7が欲しくなってきます。
沼ですね、完全に。ソケットがLGA2011だと恐ろしい事になってるけど気にしない。






おまけ

perlで2文字だけ避ける方法

文字列で否定したいときに部分否定じゃなくて行否定されて悲しいにょ。
何が否定だにょ、行否定は違いますにょ。

(?!cd).(?<!cd)

これでcd以外に引っかかりますにょ。
cとかdも引っかかりますにょ。cdは引っかかりませんにょ。
3文字は無理ですにょ、真ん中の文字が避けられませんにょ。




2015年2月20日金曜日

なんとなくperlで正規表現練習



perlの正規表現で否定的先読みがある。

検索文字(?!パターン)


どういう効果があるかは「正規表現 後読み 先読み」とかでググると色々な例があるよ。


以降なんとなく正規表現練習。

echo -e '
unused
 aaaa =>        bbbb// cccc
,dddd =>        array()
     ffff =>array( // gggg
        ,hhhh =>array(
'

以上をLinuxコマンドに「echomatch」として登録。
コマンド自作方法は「shellscript 自作コマンド」でググると大体おk。

LinuxについてはVagrantとVirtualBoxを使って、実験用の仮想環境を作ろう。
私はなんとなく「CentOS 6.5 64bit」を使ってる。



①「unused」は行回避する
②「array(」も行回避する
③コメント部分は回避する
④「=>」の行は一致させる

「=>」行を一致

echomatch  | grep -Po --color '^.*=>.*'
 aaaa =>                bbbb// cccc
,dddd =>                array()
         ffff =>array( // gggg
                ,hhhh =>array(
        ,iiii =>array(jjjj) // kkkk

---------------- ---------------- ---------------- ----------------

コメント部分を行回避

echomatch  | grep -P --color '(^.*=>[\t ]*)(?!.*//).*'
,dddd =>                array()
                ,hhhh =>array(

---------------- ---------------- ---------------- ----------------

コメント行に一致させつつ、コメント部分を回避

echomatch  | grep -P --color '(^.*=>[\t ]*).*(?=//)'
 aaaa =>                bbbb
         ffff =>array(
        ,iiii =>array(jjjj)

---------------- ---------------- ---------------- ----------------

2つを合体させて、コメント部分だけを回避

echomatch  | grep -P --color '(^.*=>[\t ]*)(.*(?=//)|(?!.*//).*)'
 aaaa =>                bbbb
,dddd =>                array()
         ffff =>array(
                ,hhhh =>array(
        ,iiii =>array(jjjj)

---------------- ---------------- ---------------- ----------------

「array(」で終わる行を回避

echomatch  | grep -P --color '(^.*=>[\t ]*)((?!.*array\()|(?=.*array\(.*\))).*'
 aaaa =>                bbbb// cccc
,dddd =>                array()
        ,iiii =>array(jjjj) // kkkk

---------------- ---------------- ---------------- ----------------

これも合体させます、「array(」は行削除なので最優先で行います。また、「array()」は削除されないよう、「array(」と同レベルの優先度行います
コメント回避は後ろに置きます。部分回避は大体後ろに置かないと死ぬ。


echomatch  | grep -P --color '(^.*=>[\t ]*)((?!.*array\()|(?=.*array\(.*\)))(.*(?=//)|(?!.*//).*)'
 aaaa =>                bbbb// cccc
,dddd =>                array()
        ,iiii =>array(jjjj) // kkkk

---------------- ---------------- ---------------- ----------------



コメント回避を場合分けで対処するのはエレガントじゃないよね、他に方法思いつかない。



おまけ




なんとなく冬美貼る。
てかソースコードのように書くのめっちゃめんどい。
あとこれプレビュー反応しねえ。

2015年2月17日火曜日

perlで配列にファイルオープン


なんとなくリッチにメモリをバカ食いしながら処理をする。
perlで配列にファイルオープン。各行を配列にぶち込みたい時に。

①まずファイルオープンします。

open( DATAFILE , "<" , $FilePath ) or die('Error:'.$!) ;


②次に配列に入れます。

my @MultipleLines = <DATAFILE> ;


③終わり。


簡単ですね。

しかしこれでは文末にみんな大好き\n(改行コード)が入ってしまいます。
では文末の\nを取り除いたバージョン、いましょう。


①まずファイルオープンします。

open( DATAFILE , "<" , $FilePath ) or die('Error:'.$!) ;


②次に配列に入れます。<DATAFILE>は何故か配列扱いされるので、
 mapで文末の\nを空文字に置換します。

my @MultipleLines = map { $_=~ s/\n$// ; $_ } <DATAFILE> ;


③終わり。


これで簡単に配列に展開できましたね。


おまけ



lookbehind assertion is not fixed length
後読みが固定長文字列じゃないよ!(訳:後読みに量指定とか付けんなや!)
ちなみにPerlでは無理です。仕様が許さない限りね。
そして月日が経ち……
5.10新機能から「\K」実装。以下に例を示す。


echo 'dsdg = fsefe;//eiya' | grep -P --color '(?<=(//.*))ya'    :実行できない
↓代わりに
echo 'dsdg = fsefe;//eiya' | grep -P --color '((//.*)\K)ya'        :実行できる
「ya」に色がつく

echo 'dsdg = fsefe;//eiya' | grep -P --color '(?<=(fs|ds)).'    :実行できる(できる)
↓(できるけど)代わりに
echo 'dsdg = fsefe;//eiya' | grep -P --color '((fs|ds)\K).'        :実行できる
dとeに色がつく


以上のように「肯定的」可変長後読みが可能に。
しかし「否定的」可変長後読みは依然としてダメ。
まあ、私が知らないだけかもね。



perlは数日で簡単に正規表現を主体とした処理が書ける。
初心者になるハードルは低いという事ですね。
中級者以上になるつもりはないけど。
これで大規模プログラム組むとかはつらい。
特に関数がphp程に日本語訳が充実してないからつらい。

2015年2月9日月曜日

制限あるLinuxコマンドでの置換の仮実行(be limitd dry run)




なんつーか、Linuxコマンドで、
置換の仮実行(dryrun)っぽいのが無くて悲しいので、
なんとなく構造だけ書いてみる。
ちなみに以下のコードはperlがあること前提です。
別にsedでも問題ないです。



find ~ | xargs grep -Po '検索文字列' | cut -d ':' -f 2 | sort | uniq | perl -pe '置換スクリプト'



①「find」で対象ファイルの場所を取得。grepに投げる。

②「grep」で置換したい文字列を検索に掛けます。
 そしてオプション「-o」ファイル名と一致文字列を取得。cutに投げる。

③「cut」のオプション「-d ':'」で「:」で文字列を区切り、
 そしてオプション「-f 2」で区切った文字列の2番目、
 乃ち「一致文字列」だけ取得。sortに投げる。


④「sort」で一致文字列を整列させる。uniqに投げる。

⑤「uniq」で重複文字列を削除する、perlに投げる。

⑥「perl」のオプション「-p」で標準出力させるようにし、
 オプション「-e 'スクリプト'」で書かれたスクリプトを実行。
 -pによって置換された文字列が出力される。されるだけ。


ぶっちゃけ④とか⑤とかいらないけど、何となく。

-------------------------------- --------------------------------

sed使ってやる場合。

find ~ | xargs grep -o '検索文字列' | cut -d ':' -f 2 | sort | uniq | sed -e '置換スクリプト'

perlとsedってここだけ見ると似てますね。

-------------------------------- --------------------------------

今後の方向性。

①各行毎に置換前、置換後を表示したい。
②色付けたいよね。色。

たぶん
自作コマンド的な何かを作れそう。


-------------------------------- --------------------------------


問題

先読み、後読みによる置換では不具合が起きる。
この構文のままでは先読み、後読み指定した文字列が、
一致文字列に入らないので無意味。