写真集

Camera:Panasonic LUMIX DMC-LX3
Vine Linux と Ubuntu の設定方法など

PowerShell で grep like なスクリプトを書いてみました

2017-06-20 00:11:02 | Windows7
$pattern1="^\+"
$pattern2="^\+{3}"
$pattern3="^\+.\s*//"

$InputFileName="test1.diff"
$OutputFileName="out.txt"

# 取得したファイルを改行区切りで string[] にしてパイプに流す(改行コードは含まれない)
Get-Content $InputFileName | Out-String -Stream | `
# 正規表現で「+ 追加行」のを取得する
Select-String $pattern1 | `
# 正規表現で「+++ ファイル名」以外の行を取得する
Select-String $pattern2 -NotMatch | `
# 正規表現で「+ //コメント行」以外の行を取得する
Select-String $pattern3 -NotMatch | `
# コンソール表示幅の80文字(初期値)で改行されないようにして、ファイルに出力をする。
Out-String -Width 10000 | Out-File $OutputFileName

grep.ps1

PowerShell で sed like なスクリプトを書いてみました

2017-06-19 22:58:27 | Windows7
$pattern1="^\+{3}"
$pattern2="^\+{3} "

$InputFileName="test.diff"
$OutputFileName="FileList.txt"

# 取得したファイルを改行区切りで string[] でパイプに流す(改行コードは含まれない)
Get-Content $InputFileName | Out-String -Stream | `
# 正規表現で「+++ ファイル名」の行を取得する
Select-String $pattern1 | `
# 各行をforeachで置換処理をする
ForEach-Object { $_ -replace $pattern2 , "RootFolderName/" } | `
# コンソール表示幅の80文字(初期値)で改行されないようにして、ファイルに出力をする。
Out-String -Width 10000 | Out-File $OutputFileName

sed.ps1