Memo plus Alpha

メモにプラスアルファを加えて価値ある情報に。

Perlで文字列をファイルを一括して置き換える(削除する)

Perl memo

ファイルの中身を一括して置き換える。

 

use utf8;
use Encode;
#標準出力(しない場合は不要)
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";
#テキストファイルの一括取得
@files = glob ("*.txt");

#それぞれのファイルに対して処理
foreach $i (@files){

#ファイルを開く
open A,$i;
#内容を配列に格納
@data = <A>;
close A;

#保存用のファイルを作る
open B,">edit_$i";

#一行ごとの処理
foreach my $line (@data){
$line=decode('UTF-8', $line);
#置き換えの処理
$line=~s/<p>//g;
$line=~s/<br>//g;
#ダブルスペースを削除
$line=~s/ +/ /g;
#小文字に変換
$line=lc($line);

print B encode('UTF-8', $line);
}
close B;
}

Windows 10でシャットダウンできない問題を回避

はじめに

Windows 10 (ver 1511)をAniversary Update (ver 1607)にアップデートすると、シャットダウンができないという問題が起きました。一度電源が切れるものの、2秒くらい経つとすぐに再起動する現象が発生。

 

おそらくドライバー等の問題ではないかと思い、いろいろと試す(高速スタートアップの無効化、デバイスによる電源管理の無効化 etc)も効果なし。

 

そのうちWindowsが対応してくれるだろうと思い、放置していましたが、Creators Update (ver 1703), Fall Creators Update (ver 1709)にしても改善せず…。

解決策

ver 1511のサポートも切れるので、セキュリティ的によろしくないと思い、再度挑戦。

 

これまで試した対応策の中に「接続されているUSB機器を抜く」というのがありました。これももちろんやったのですが、もしかしてネットワークケーブル?と思い、恐る恐るこれを抜いてシャットダウンすると…

 

再起動しない!!

 

まさかそこだったとは…。実は使っているパソコン(マウスコンピューター)は拡張カードで有線LANを設置しているのですが、これが原因でした(インテルギガビットLANアダプター)。

オンボードのLAN口を使えば、再起動しなくなり、無事解決しました。だいぶ時間(とお金:増設代)を無駄にしましたが、とりあえず一件落着。

WordPressでSFTPを設定する

はじめに

サーバーがSFTPにしか対応していない場合、WordPressプラグインをブラウザ経由ではインストールすることができません(FTP、FTPSのみがデフォルトで対応しているため)。SFTP対応のプラグインを手動でインストールすることで、この問題は解決します。

対応策

(1)

プラグインをダウンロードします。例えば:

SSH SFTP Updater Support — WordPress プラグイン

など。

(2)

ローカル上で解凍し、ssh-sftp-updater-supportというフォルダ(バージョンのあるフォルダ(例:ssh-sftp-updater-support.0.7.1)のひとつ下の階層にあります)をwp-contents/pluginsというフォルダにアップロードします。

(3)

WordPressの管理画面から「プラグイン」を選び、有効化します。

(4)

他のプラグインをインストールする際、次のような画面が現れます。SSH2を選択し、上方のユーザー名とパスワードを入力します。この際、WordPressのユーザー名ではなく、サーバーにログインするユーザー名とパスワードが必要になるので注意してください。

f:id:semanticist:20171102205002p:plain

 

 

起動しなくなったWindows10からUbuntuでファイルを救出する

はじめに

急にWIndows 10が起動しなくなりました。以前(かなり前ですが)Linuxをつかって救出したことがあったのですが、今回はエラーが出てうまくいかず…。

エラーは簡単に言うと、Windowsのあるディスクにアクセスできない、というもの(error mounting /dev/sdb1 at ...などのように出てきます)。

これはどうやらWindowsの高速起動なるもののためにディスクが「休止状態」になり、そのため「使用中」と判断されてLinuxからアクセスできない、ということのようです。

対策

(1) LinuxのDVDをつくる

今回はUbuntuを使います。詳細については「Ubuntu データ救出」などで調べたらたくさん出てきます。

まずはISOファイルをウェブからダウンロード、それをDVDに焼きます。そしてこのDVDからコンピューターを起動する、ということになります。

(2)コンピューターの起動優先順位を変える

BIOSを起動し(電源入れてすぐにF2、F10、F12あたり(コンピューターによって異なります)を連打)、BootメニューからPriorityを変更します。Windowsのあるディスクが一番になっていると思いますが、これをCD/DVDのデバイスよりも下にします。

(3)DVDからUbuntuを起動する

BIOSを終了すると、DVDから起動します。ファイルを読み込むために起動には時間がかかりますので辛抱強く。

Ubuntuを試す」を選択(重要!インストールにしたらファイルが全部消えます)して起動を待ちましょう。

(4)コマンドラインから入力する

左のバーのあたりにディスク一覧が表示されます。それをクリックすれば基本的にはアクセスできるはずなのですが、前述の通りマウントエラーができました。エラーコードからWindowsのある場所の名前を取得しましょう。dev/sda1などとなっているはずです(ディスクの配線によって数字やアルファベットがわかります。sdb1, sda2など)。

そこで、コマンドラインから強制的に読み取り専用のアクセス権を取得します(書き込みは不可)。まず、Ctrl+Alt+Tでターミナルを起動、次のコマンドを入力。

 

sudo mkdir /media/ubuntu/PC

#マウントする先を作ります

sudo mount -t ntfs-3g -o ro /dev/sda1 /media/ubuntu/PC

#さきほど作った場所にdev/sda1を読み取り専用でマウントします

【参考】UbuntuでWindowsの休止状態のNTFSボリュームをマウントする - Qiita

(5)ファイルを選んでUSBメモリなどにコピーする

これでディスクにアクセスできるようになるので、必要なファイルをUSBメモリなどにコピーしましょう(Usersのなかのアカウント名ごとフォルダをコピーするのが早いかもしれません)。

 

 

 

 

WordでPNGの背景が透過しない問題

現象

Wordに背景が透明なPNGを貼り付けると、画面上は馴染んでいる見えるのですが、印刷すると、背景部分が次のように浮き上がってきてしまいます。

 

f:id:semanticist:20170705130627j:plain

いろいろと試したけど、うまくいかず…。

解決策?

Wordのファイル形式をdocにすれば少し「まし」になります。再現性が下がるという警告がでますが、これは無視。

f:id:semanticist:20170705130848j:plain

左のほうだけ、なぜか微妙に枠が見えます。で、色を赤に変えると…

f:id:semanticist:20170705130941j:plain

これは綺麗にできました(下に別の印刷物が透けて見えていますがこちらは関係ありません)。

 

ということで、PNGの透明な背景がうまくいかないときは、docで保存して色を原色っぽいものにすれば良くなります。ワードのバグですかね…。