PowerShell のフィルタ定義色々
PowerShell のフィルタで AWK コマンドと同等……同等以上の事ができる!
サンプル1
入力ファイルと出力ファイルを引数で受け取り、スクリプトファイル内で定義するフィルタで処理する。
sample1.ps1
Param( $in, $out ) # 各行を処理する Function Line-Process { # 1行目を処理する前 Begin { # 行番号を初期化(1 ベース) $nLineNo = 0 } # 1行目~最終行を処理する Main { # 行番号を更新 ++ $nLineNo # $_ は標準出力の各行を保持 $_ } # 最終行を処理した後 End { } } Get-Content $in | Line-Process | Out-File -LiteralPath $out
使用例
PS D:\tmp> sample1.ps1 input.txt output.txt
サンプル2
sample2.ps1
# 1行目を処理する前 Begin { # 行番号を初期化(1 ベース) $nLineNo = 0 } # 1行目~最終行を処理する Main { # 行番号を更新 ++ $nLineNo # $_ は標準出力の各行を保持 $_ } # 最終行を処理した後 End { }
使用例
PS D:\tmp> Get-Content input.txt | sample2.ps1 | Out-File -LiteralPath output.txt
サンプル3
サンプル1と2の場合、全体の行数がわからなかったり、各行を処理するときに他の行へアクセスできない。このサンプルではそれを解消する方法を示す。
sample3.ps1
# 標準入力を $stream へ代入 $stream = $($input) # 各行を処理する Function Line-Process { # 1行目を処理する前 Begin { # 行番号を初期化(1 ベース) $nLineNo = 0 } # 1行目~最終行を処理する Main { # 行番号を更新 # $i は $stream の参照用(0 ベース) $i = $nLineNo ++ # $i は標準出力の各行を保持 # $_ と $stream[$i] は同じ内容 "{0}`t{1}`t{2}" -f $nLineNo, $_, $stream[ $i ] } # 最終行を処理した後 End { } }
使用例
PS D:\tmp> Get-Content input.txt | sample3.ps1 | Out-File -LiteralPath output.txt
Oracle Database 21c:データベースが作成できない
Oracle Database 21c Express Edition (XE) をインストール後、データベースを作成するため Database Configuration Assistant を起動しウィザードを進めたところ、エラーが発生し作成できない。わからないため、教えて下さい!
インストールは以下のオフィシャル・サイトをみて行いました。
データベースの作成は、以下の様に進めました。
1:標準構成を選択した後、以下を設定し、[次へ]を押下。
- グローバル・データベース名
- 管理者パスワード
- パスワードの確認
- プラガブル・データベース名
2:以下の進行状況になると……(次の3を参照)
3:以下のメッセージが表示された。[続行]ボタンを押下。
4:以下のメッセージが表示され、先へ進めない。
データベースの作成手順は以上です。
動作環境
補足
Oracle データベースは使用した経験はありません。
(MySQL はインストールも含め使用した経験があります)
上記手順でデータベースを作成する事はできませんでしたが、以下のコマンドでログインし、テーブルを作成する事ができました。
>cd <ORACLE_HOME>\bin
>sqlplus system@localhost/xepdb1
インストールの時点で xepdb1 が作成されているため、新規でデータベースが作成できないのだろうか……。
以上です。
IP アドレス設定バッチ for Windows
- 1. 動的設定(DHCP で IP アドレスを自動で割り当てる場合)
- 2. 静的設定(IP アドレスを自分で設定する場合)
-
ipStatic.batREM 以下の "イーサネット" をイーサネットアダプタの名称に変更する
REM 以下の XXX.XXX.XXX.XXX をそれぞれ、
REM IP アドレス/サブネットマスク/デフォルトゲートウェイに変更する
netsh interface ip set address "イーサネット" static XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX
REM 以下の XXX.XXXX.XXX.XXX を DNS サーバのプライマリに変更する
REM (このコマンドの実行でセカンダリの設定はクリアする)
netsh interface ip set dns "イーサネット" static XXX.XXX.XXX.XXX primary
REM 以下の XXX.XXXX.XXX.XXX を DNS サーバのセカンダリに変更する(使用する場合)
netsh interface ip add dns "イーサネット" XXX.XXX.XXX.XXX
JSON at PowerShell
$o | ConvertTo-Json
LibreOffice Calc 条件書式:セルの値に応じて複数のセルの色や文字の色を変更
セルの値に応じで複数(1 行)のセルの色を変更
手順
- 以下の赤枠のように 4 行の表を入力します。
- 表の 1 行目を選択します。
(100 を入力したセルへマウスを移動し、左ボタンを押しっぱなしにする。1 行目の close までマウスを移動し、左ボタンを放します) - 「書式」メニューをクリックして、「条件付き」-「条件」をクリックします。
- 以下の画像のように1~3を選択、入力して、4 の[OK]ボタンをクリックします。
2 は、セル D2(D 列の 2 行目)が close の時、という意味になります。$(ダラー)は固定を表し、D の前に記しているため D 列に固定する、という意味になります。 - 条件書式が適用され、1 行目は D 列が close のためグレー表示になりました。
- 表の 2 ~ 4 行目にも同様の設定をする方法をここから示します。
1 行目を選択します。 - 続いて、1 の「ほうき」アイコンをクリックします。
- 表の 2 行目の 10 を入力したセルにマウスを移動し、マウスの左ボタンを押しっぱなしにします。続けて、表の 4 行目の close を入力したセルまでマウスを移動し、左ボタンを放します。
- 前手順で左ボタンを放した瞬間に選択したセルに条件書式が貼り付けられました。(完成)
- 条件書式が適用されているか確認。(表の 4 行目がグレーになっているため適用されているのはわかるけど)
表の 3 行目の open を close に変更します。
以上です。
LibreOffice Calc 条件書式:セルの値に応じてセルの色や文字の色を変更
※
1 つのセルで複数のセルの色を変更する方法は後日アップします。
条件書式を設定した結果(条件は 70 以上に色を付ける)
手順
- 数字を 4 つ(100, 10, 70, 40)入力します。
- 100 を入力したセルをクリックします。
- 「書式」メニューをクリックして、「条件付き」-「条件」をクリックします。
- 以下の画像のように1~4を選択すると、セルが 70 以上の時に色が変わる様になります。
4はセルの色や数字の色の指定になります。
条件や色を決めたら5の [OK] ボタンをクリックします。 - セルに 100 を入力していたので前手順の4で指定した色になります。
- 10, 70, 40 を入力したセルにも同様の設定をする方法をここから示します。
条件書式を設定しているセルを選択します(100 を入力したセルが既に選択されてるため何もしない)。
続いて、1 の「ほうき」アイコンをクリックします。 - 10 を入力したセルにマウスを移動し、マウスの左ボタンを押しっぱなしにします。続けて 40 を入力したセルまでマウスを移動し、左ボタンを放します。
- 前手順で左ボタンを放した瞬間に選択したセルに条件書式が貼り付けられます。(完成)
以上です。