投稿

7月, 2018の投稿を表示しています

PowerShell 6で、Shift_JISのCSVをImport-Csvで読み込んだら文字化けした

Follow @venividivici830 PowerShell 4で作ったShift_JIS(シフトJIS)のCSVを読み込むスクリプトを、PowerShell 6で動かしたら文字化けした話。 結論としては、下記のようにすればOK。 > Import-Csv -Encoding ([System.Text.Encoding]::GetEncoding(932)) path_to_csv_file 現象 PowerShell 4では、 このページ にあるように、Import-Csvコマンドレットのオプションとして、-Encoding defaultを付ければよかった。 ところが、PowerShell 6では上手くいかない。 例えば、下記のようなshift-jisのCSVがある。 名前,年齢 田中,20 山田,10 これを、-Encoding defaultオプションで読み込むと、 > Import-Csv -Encoding default ./test.csv                        O N ---- ---- c 20   Rc 10   このように文字化けする具合だ。 原因 まず、「default」がutf-8に変わったのが原因のようだ。 .NET Framework クラスライブラリーの、System.Text名前空間の、Encodingクラスの、Defaultプロパティーを確認した。 > [ System.Text.Encoding ]:: Default BodyName           : utf-8 EncodingName       : Unicode (UTF-8) HeaderName         : utf-8 WebName           : utf-8 WindowsCodePage   : 1200 IsBrowserDisplay   : True IsBrowserSave     : True IsMailNewsDisplay : True IsMailNewsSave     : Tru

CentOS 7にOracle Database 18cをコマンドラインでインストールした

イメージ
Follow @venividivici830 仮想マシン上のCentOS 7に、Oracle Database 18cをCUIで(GUIを使わず)インストールした時の記録。 インストール後、dbcaで、これまたコマンドラインからDBを作成し、インスタンスの開始と停止ができるところまで確認した。 OracleのインストールはGUIでもハマるけど、CUIだともっとしんどい。 環境は、macOS High Sierra バージョン 10.13.5、Virtualbox バージョン 5.2.12 r122591、CentOS-7 (1804)、Oracle Database 18c (18.3)。 CentOS 7は、 Minimal ISOからインストールした もの。 このCentOS 7に対し、コマンドライン( サイレント・モード )で、X Window System(GUI)を使わずにインストールした。 MacのCPUは3.06 GHz Intel Core 2 Duo、メモリーは4 GB 1067 MHz DDR3。 VirtualboxのゲストOS(CentOS 7)には、HDD 10 GB、メモリー 1Gを割り当てた状態からスタートし、適宜拡張した。 以下、コマンドのプロンプトが#の場合は、CentOS のrootでの作業、$の場合は、特に断りがなければCentOSのユーザーoracle、oracle以外の場合は、CentOSかMacの任意の一般ユーザー。 なお、以下の手順を参考にする場合、 頻繁にスナップショット機能でイメージバックアップを取得することをおすすめする 。 ライセンス確認 このページ に下記の記述があるように、学習などの限定用途で、無償で使用できるようだ。 OTNサイト(www.oracle.com/technetwork)からダウンロードできるソフトウエアには OTN開発者ライセンスがついており、限定された用途で無償で使用できます。 OTN開発者ライセンス付きのソフトウエアは、お客様のアプリケーションの開発、テスト、プロトタイプ作成、及びデモンストレーションのみを目的として(かつ、お客様のアプリケーションが、データ処理、業務、商用又は本番利用を目的として使用されたことがない場合に限られ

macOSのPowerShellに、PackageManagementでMathNet.Numericsを入れてみた

Follow @venividivici830 PowerShellでも、yumやapt-getのようなパッケージ管理システムがあることを知ったので、.NETの数値計算ライブラリーである、MathNet.Numericsを、試しにインストールしてみた。 環境はmacOS 10.13.5、PowerShell v6.0.2。 このサイト や、 Microsoftの公式ドキュメント を参考にやってみた。 MathNet.Numericsがヒットしない まず、yum searchに該当するFind-Packageコマンドレットで、MathNet.Numericsを検索してみたが、見つからない。 > Find-Package -Name MathNet.Numerics Find-Package : No match was found for the specified search criteria and package name 'MathNet.Numerics'. Try Get-PackageSource to see all available registered package sources. At line:1 char:1 + Find-Package -Name MathNet.Numerics + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Microsoft.Power...ets.FindPackage:FindPackage) [Find-Package], Exception + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage MathNet.Numericsは、リポジトリーである NuGet に登録さ

PowerShellの最低限のキーバインドとコマンド

Linuxでよく使っていたキーバインドとコマンドについて、PowerShellで対応するものを最低限まとめた。 他のものについては、忘れたら検索する方針で、とりあえず事足りている。 まずはキーバインド。 Tabで補完、↑で履歴を辿る、Ctrl + Cでプロセスの終了など、Linuxと共通のものは除外した。 キーバインド 動作 Bash Home カーソルを先頭に合わせる Ctrl + A End カーソルを末尾に合わせる Ctrl + E Ctrl + → 次の単語に進む Alt + F Ctrl + ← 前の単語に戻る Alt + B Ctrl + Home 先頭まで消す Ctrl + U Ctrl + End 末尾まで消す Ctrl + K F7 履歴を一覧する 仕事でWindows使っていて、PowerShellもよく使うが、最低限これで結構事足りている。 Ctrl + Wに対応するキーバインドはわからなかった。めっちゃ便利なんだけどな。 スクリーンをクリアーする場合は、コマンドプロンプトのclsで代替している。 Macだと、Home、Endとかないけど、bashコマンドが効くからOK。 次はコマンド。 本当に最低限。 Get-ChildItem -Name | Select-String string 対応するLinuxコマンドは、 ls | grep  string 結構使うと思うんですよね。指定したディレクトリーに含まれる、特定の名前のファイルを一覧するのって。 Get-ChildItemがデフォルトで返すのは、FileInfoまたはDirectoryInfoオブジェクトなので、単純に名前だけ返したい場合は、-Nameを指定する。(-Nameを指定しても、Stringオブジェクトが返るが) Select-Stringはgrep。ただし、Select-Stringはデフォルトでegrep(正規表現のgrep)の動きなので、ちょっと注意か。 あと、やっぱりよく使うのは、 xargs こちらは、 command | %{ command $_} のようにする。 |でコマンドを