ページ

title

告発\金沢地方検察庁\最高検察庁\法務省\石川県警察御中
弁護士と裁判官が共同で確定させた傷害・準強姦被告事件判決の再捜査要請に係る石川県警察珠洲警察署提出書面の情報公開

殺人未遂事件幇助の被告訴人: 木梨松嗣弁護士(金沢弁護士会)、岡田進弁護士(金沢弁護士会)、長谷川紘之弁護士(金沢弁護士会)、若杉幸平弁護士(金沢弁護士会)
名誉毀損罪の被告訴人: モトケンこと矢部善朗弁護士(京都弁護士会)、小倉秀夫弁護士(東京弁護士会)
市場急配センター株式会社 石川県金沢市駅西本町5丁目10番20所在
作成管理者: 石川県鳳珠郡能登町字宇出津 廣野秀樹
金沢地方検察庁御中

2021年2月9日火曜日

パソコン・情報公開### ヒアドキュメントをパイプ処理の入力とし,ワンライナーにファイル名を引数で渡し,置換でファイルの書き換え

パソコン・情報公開### ヒアドキュメントをパイプ処理の入力とし,ワンライナーにファイル名を引数で渡し,置換でファイルの書き換え

:CATEGORIES: #Ruby

```
cat << 'EOS' | ruby -e 'File.write(ARGV[0], File.read(ARGV[0]).gsub(/(.*cond = http(.*\n)+?[ ]*fi\n)/, "\\1#{STDIN.read}"))' test.sh
if [ $cond = https ];then
port=443
fi
EOS
```

- Rubyやsedで複数行の文章を任意の箇所に挿入する - grep Tips * [https://www.greptips.com/posts/1170/](https://www.greptips.com/posts/1170/)

 すごく勉強させてもらったページです。ヒアドキュメントは変数への代入に使うことが多く,パイプで出力を次のコマンド処理に渡したことはあったかもしれないですが,Rubyのワンライナーの処理でファイルの内容を書き換えるのに使っています。

 gsubメソッドの正規表現が複雑になっていますが,後方参照でヒアドキュメントの内容と文字列を連結させています。これはよく行ってきた処理で,正規表現の部分が単純であれば,よりわかりやすいかと思います。

 なぜかコピペで半角の鉤括弧が全角文字になっていることに気がついたので直しました。コピーしたコードはそのまま使えていました。最近は見かけないですが,文字を揃えるのに半角スペースを全角スペースに置き換えてあり,それでエラーが出ることは過去に経験があります。

 File.writeの引数に,スクリプトではなくワンライナーから引数を使っていますが,これは初めて知ったことで,この引数の関係でスクリプトにすることが過去に何度かありました。数が増えると管理が難しくなるというのがスクリプトの難点で,ワンライナーだと処理の内容も一目瞭然です。

 ちょっとした修正を加えて実行できるのもワンライナーの利便性かと思います。テキストファイルにコマンド履歴として保存し,catコマンドの出力からコピペで使うということは前からやっています。わかりやすくcというファイル名にしています。次のような感じです。


```
(py37_env) ➜ 告発状2021 git:(main) ✗ cat c
rm *.{aux,log,pdf,tex,toc} tmp.txt

rm *.{aux,log,tex,toc} tmp.txt

for x in ./*.md; do md-to-tex-pandoc.rb $x; lualatex ${x%%md}tex; done; rm ./*{aux,log,tex,toc} tmp.txt
```

0 件のコメント:

コメントを投稿