コンテンツへスキップ

param(
    [parameter(mandatory=$true)][string]$filename
)

#$filename = "E:\my-document\powershell+word\テスト.docx"

$objWord = New-Object -Com Word.Application
$objWord.Visible = $false
$objDocument = $objWord.Documents.Open($filename)
$paras = $objDocument.Paragraphs

$pattern = "\[.*\]:.*\[.*\]"

foreach ($para in $paras) 
{ 
    #Write-Output $para.Range.Text
    $line = $para.Range.Text
    $line = $line.trim()
    if ($line -match $pattern) {
        write-output "Patternを含む=[" + $line + "]"
    } else {
        write-output "Pattern含まない=[" + $line + "]"
    }
}

 

ファイルの読み込み

# -*- coding:utf-8 -*-
import codecs

FILE="テキストファイル"
f=codecs.open(FILE,'rb','utf-8','')
contents=f.read()
f.close()
for line in contents.split('\n'):
    print(line)

ファイルへ出力

# -*- coding:utf-8 -*-
import codecs

FILE="test.txt"
f=codecs.open(FILE,'wb','utf-8')
f.write("書き込みテスト")
f.close()

 

キャッシュヒット率、デッドロック発生回数等の確認

psql -U postgres -x -c "select * from pg_stat_database where datnme = 'dvdrental';"

PS E:\> psql -U postgres -x -c "select * from pg_stat_database where datname = 'dvdrental';"
-[ RECORD 1 ]---------+------------------------------
datid                 | 16384
datname               | dvdrental
numbackends           | 0
xact_commit           | 4131
xact_rollback         | 1
blks_read             | 2212583
blks_hit              | 2307441
tup_returned          | 560370952
tup_fetched           | 119685
tup_inserted          | 677037
tup_updated           | 40
tup_deleted           | 37
conflicts             | 0
temp_files            | 0
temp_bytes            | 0
deadlocks             | 0
checksum_failures     |
checksum_last_failure |
blk_read_time         | 0
blk_write_time        | 0
stats_reset           | 2019-09-20 10:16:28.019498+09

・キャッシュヒット率

psql -U postgres -x -c "select (blks_hit * 100.0)/(blks_hit + blks_read) from pg_stat_database where datname = 'dvdrental';"

PS E:\> psql -U postgres -x -c "select (blks_hit * 100.0)/(blks_hit + blks_read) from pg_stat_database where datname = 'dvdrental';"
-[ RECORD 1 ]-----------------
?column? | 62.0830075708206989

・テーブルに対する処理

psql -U postgres -d dvdrental -x -c "select * from pg_stat_user_tables where relname = 'testtable';"

PS E:\> psql -U postgres -d dvdrental -x -c "select * from pg_stat_user_tables where relname = 'testtable';"
-[ RECORD 1 ]-------+------------------------------
relid               | 16391
schemaname          | public
relname             | testtable
seq_scan            | 2293
seq_tup_read        | 492528000
idx_scan            |
idx_tup_fetch       |
n_tup_ins           | 993000
n_tup_upd           | 0
n_tup_del           | 0
n_tup_hot_upd       | 0
n_live_tup          | 993000
n_dead_tup          | 0
n_mod_since_analyze | 83000
last_vacuum         |
last_autovacuum     |
last_analyze        |
last_autoanalyze    | 2019-09-20 10:50:22.847133+09
vacuum_count        | 0
autovacuum_count    | 0
analyze_count       | 0
autoanalyze_count   | 18

・動作中のバックエンドプロセス情報

psql -U postgres -d dvdrental -x -c "select * from pg_stat_activity;"

PS E:\> psql -U postgres -d dvdrental -x -c "select * from pg_stat_activity;"
-[ RECORD 1 ]----+--------------------------------
datid            |
datname          |
pid              | 2816
usesysid         | 10
usename          | postgres
application_name |
client_addr      |
client_hostname  |
client_port      |
backend_start    | 2019-09-20 10:15:48.140548+09
xact_start       |
query_start      |
state_change     |
wait_event_type  | Activity
wait_event       | LogicalLauncherMain
state            |
backend_xid      |
backend_xmin     |
query            |
backend_type     | logical replication launcher
-[ RECORD 2 ]----+--------------------------------
datid            |
datname          |
pid              | 5456
usesysid         |
usename          |
application_name |
client_addr      |
client_hostname  |
client_port      |
backend_start    | 2019-09-20 10:15:48.335029+09
xact_start       |
query_start      |
state_change     |
wait_event_type  | Activity
wait_event       | AutoVacuumMain
state            |
backend_xid      |
backend_xmin     |
query            |
backend_type     | autovacuum launcher
-[ RECORD 3 ]----+--------------------------------
datid            | 16384
datname          | dvdrental
pid              | 9096
usesysid         | 10
usename          | postgres
application_name | psql
client_addr      | ::1
client_hostname  |
client_port      | 53631
backend_start    | 2019-09-23 05:50:09.886686+09
xact_start       | 2019-09-23 05:50:09.942008+09
query_start      | 2019-09-23 05:50:09.942008+09
state_change     | 2019-09-23 05:50:09.942016+09
wait_event_type  |
wait_event       |
state            | active
backend_xid      |
backend_xmin     | 10652
query            | select * from pg_stat_activity;
backend_type     | client backend
-[ RECORD 4 ]----+--------------------------------
datid            | 16384
datname          | dvdrental
pid              | 4392
usesysid         | 10
usename          | postgres
application_name | psql
client_addr      | ::1
client_hostname  |
client_port      | 53634
backend_start    | 2019-09-23 05:50:09.889032+09
xact_start       | 2019-09-23 05:50:09.94383+09
query_start      | 2019-09-23 05:50:09.94383+09
state_change     | 2019-09-23 05:50:09.943841+09
wait_event_type  |
wait_event       |
state            | active
backend_xid      |
backend_xmin     | 10652
query            | select count(*) from testtable;
backend_type     | client backend
-[ RECORD 5 ]----+--------------------------------
datid            |
datname          |
pid              | 4628
usesysid         |
usename          |
application_name |
client_addr      |
client_hostname  |
client_port      |
backend_start    | 2019-09-20 10:15:47.657203+09
xact_start       |
query_start      |
state_change     |
wait_event_type  | Activity
wait_event       | BgWriterMain
state            |
backend_xid      |
backend_xmin     |
query            |
backend_type     | background writer
-[ RECORD 6 ]----+--------------------------------
datid            |
datname          |
pid              | 8744
usesysid         |
usename          |
application_name |
client_addr      |
client_hostname  |
client_port      |
backend_start    | 2019-09-20 10:15:48.357302+09
xact_start       |
query_start      |
state_change     |
wait_event_type  | Activity
wait_event       | CheckpointerMain
state            |
backend_xid      |
backend_xmin     |
query            |
backend_type     | checkpointer
-[ RECORD 7 ]----+--------------------------------
datid            |
datname          |
pid              | 7876
usesysid         |
usename          |
application_name |
client_addr      |
client_hostname  |
client_port      |
backend_start    | 2019-09-20 10:15:47.294516+09
xact_start       |
query_start      |
state_change     |
wait_event_type  | Activity
wait_event       | WalWriterMain
state            |
backend_xid      |
backend_xmin     |
query            |
backend_type     | walwriter

 

 

【データベース】

■作成

■削除

【テーブル】
■テーブル作成

import sqlite3
con = sqlite3.connect("app.db")
c = con.cursor()
c.execute("create table genre(id integer primary key,name_full text, name_short text)")
con.commit()
con.close()

■テーブル一覧

import sqlite3
con = sqlite3.connect("app.db")
c = con.cursor()
c.execute("select * from sqlite_master where type='table'")
for x in c.fetchall():
    print(x)
con.close()

■テーブル削除

■テーブル名の変更

c.execute("alter table category rename to genre")

■カラム名一覧

 

MachineLearning15minutes -Channel-
全脳アーキテクチャ若手の会
TrailHead
Team AI
ディープラーニング入門 Chainer チュートリアル
Deep Learning JP
ツイッター:DLHacks
Elements of AI
Aidemy
NVIDIA Ai Podcat
Learn with Google AI

順不同 更新日 8/9/2019

pg_controlファイル:リカバリ時に参照されるファイル。

pg_control -D <データベースクラスタディレクトリ>

データベースクラスタディレクトリのglobalディレクトリ配下に格納されたデータファイルを読むコマンド。

PS E:\my-document> pg_controldata -D $p.dirdbcluster
pg_controlバージョン番号:                    1201
カタログバージョン番号:                      201909212
データベースシステム識別子:                  6858058649328852080
データベースクラスタの状態:                  運用中
pg_control最終更新:                          2019/09/02 5:11:46
最終チェックポイント位置:                    0/131C0460
最終チェックポイントのREDO位置:              0/131C0460
最終チェックポイントのREDO WALファイル:      000000020000000000000013
最終チェックポイントの時系列ID:              2
最終チェックポイントのPrevTimeLineID:        2
最終チェックポイントのfull_page_writes:      オン
最終チェックポイントのNextXID:               0:10705
最終チェックポイントのNextOID:               24576
最終チェックポイントのNextMultiXactId:       1
最終チェックポイントのNextMultiOffset:       0
最終チェックポイントのoldestXID:             479
最終チェックポイントのoldestXIDのDB:         1
最終チェックポイントのoldestActiveXID:       0
最終チェックポイントのoldestMultiXid:        1
最終チェックポイントのoldestMultiのDB:       1
最終チェックポイントのoldestCommitTsXid:     0
最終チェックポイントのnewestCommitTsXid:     0
最終チェックポイント時刻:                    2019/09/02 5:11:46
UNLOGGEDリレーションの偽のLSNカウンタ:       0/3E8
最小リカバリ終了位置:                        0/0
最小リカバリ終了位置のタイムライン:          0
バックアップ開始位置:                        0/C000060
バックアップ終了位置:                        0/0
必要なバックアップ最終レコード:              いいえ
wal_levelの設定:                             replica
wal_log_hintsの設定:                         オフ
max_connectionsの設定:                       100
max_worker_processesの設定:                  8
max_wal_sendersの設定:                       10
max_prepared_xactsの設定:                    0
max_locks_per_xactの設定:                    64
track_commit_timestampの設定:                オフ
最大データアラインメント:                    8
データベースのブロックサイズ:                8192
大きなリレーションのセグメント毎のブロック数:131072
WALのブロックサイズ:                         8192
WALセグメント当たりのバイト数:               16777216
識別子の最大長:                              64
インデックス内の最大列数:                    32
TOASTチャンクの最大サイズ:                   1996
ラージオブジェクトチャンクのサイズ:          2048
日付/時刻型の格納方式:                       64ビット整数
Float4引数の渡し方:                          値渡し
Float8引数の渡し方:                          値渡し
データベージチェックサムのバージョン:        0
認証用の疑似nonce:                           bb1d86aa4d7223431facbc8144ccccc452c0355ce5f9f5ead161b8ad4d9d8303

 

・コマンド結果を変数にセット

;--------------------;
; SetHostName.ttl
; コマンド結果を変数に格納 ;
;--------------------;
sendln 'hostname'
recvln
recvln
HostName=inputstr
wait '$' '#'

messagebox HostName 'ホスト名を変数にセット'

・文字列比較

;--------------------------;
; 文字列比較                ;
; strcompare               ;
; <string1> < <string2>	-1 ;
; <string1> = <string2>	0  ;
; <string1> > <string2>	1  ;
;--------------------------;
; 変数(HostName)にサーバ名をセットする。
include '.\SetHostName.ttl'

; コマンド結果を変数に格納
sendln 'cat /etc/redhat-release'
recvln
recvln
OsVersion=inputstr
wait '$' '#'

; 文字列比較
strcompare OsVersion 'CentOS release 6.10 (Final)'
if result = 0 then
    Contents =  'centos 6.10' 
    Kekka = 'OK'
else
    Contents = 'not centos 6.10' 
    Kekka = 'NG'
endif

; メッセージボックスの作成
; messagebox <メッセージ> <タイトル> <1の場合は改行出来る>
MESSAGE = 'ホスト名:['
strconcat MESSAGE HostName
strconcat MESSAGE ']\nOSバージョン:['
strconcat MESSAGE Contents
strconcat MESSAGE ']'

TITLE = '結果:['
strconcat TITLE Kekka
strconcat TITLE ']'

messagebox MESSAGE TITLE 1

・配列

;------;
; 配列 ;
;------;
;配列の要素数をセット
CountCommand = 3
strdim com CountCommand

com[0] = 'uname -a'
com[1] = 'echo $(date)'
com[2] = 'pwd'

for i 0 CountCommand - 1
    ; コマンド実行
    sendln com[i]
    recvln
    recvln
    ; コマンド結果を変数に格納
    Ret=inputstr
    wait '$' '#'
    messagebox Ret 'コマンド結果'
next

 

rename-item <古いファイルサイズ名> -newName <新しいファイル名>

ファイル名に括弧がある場合は、-LiteralPathを付けないとうまくいかない。
rename-item -LiteralPath <古いファイルサイズ名> -newName <新しいファイル名>

ディレクトリ内のファイル名を一括変更する場合

foreach( $file in get-childitem){
    if (!($file.name | select-string 'InterFM')){
        continue
    } 

    $newName = $file.name.replace('[InterFM897]','')
    $newName = $newName.replace('(TimeFree)','')
    $newName = $newName.replace('1800.mp3','.mp3')

    if (Test-Path $newName) {
        write-host('既にファイルが存在します。[{0}],[{1}]' -F $file.name, $newName)
        remove-item -LiteralPath $file.name
    } else {
        rename-item -LiteralPath $file.name -newName $newName
    }
}

 

■変更前
[InterFM897]Barakan Beat(TimeFree)_201904141800.mp3
■変更後
Barakan Beat_20190414.mp3

leaflet

現在地点を中心に表示する。

クリックした地点にピンを立てる。

実物はここをクリック。

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Leaflet</title>
  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" />
  <script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"></script>
  <script>
    window.addEventListener("load",function(){
        //位置情報の取得
        navigator.geolocation.getCurrentPosition(
            function(position){
                console.log(position);
                var lat = position.coords.latitude;
                var lon = position.coords.longitude;
                var disp = document.getElementById("disp");
                disp.innerHTML = "緯度" + lat + "度 / 経度:" + lon + "度";

                //leaflet
                var map = L.map('jmap');
                map.setView([lat, lon], 15);
                L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {
                    attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>地理院タイル</a>"
                }).addTo(map);

                //クリックした位置にピンを立てる
                map.on('click', function(e){
                    //alert(e.latlng);
                    L.marker(e.latlng).addTo( map);
                    //var html = '<p>ここの緯度経度=' + e.latlng + '</p>';
                    //var popup = L.popup()
                    //.setLatLng(e.latlng)
                    //.setContent(html)
                    //.openOn(map);
                    var mdisp = document.getElementById("mdisp");
                    mdisp.innerHTML = e.latlng;
                });



            }
        );
    });


  </script>
</head>

<body onload="init()">
  <div id="jmap" style="width:100%;height:1000px"></div>
  <p>現在地(GPS):
  <div id="disp"></div>
  </p>
  <p>マーク地点:</p>
  <div id="mdisp"></div>
</body>

</html>