データベースサイズを計算し、スクリプトがPostgreSQL
実行された日付とともに出力をテキストファイルとして印刷するbashスクリプトを作成しました。スクリプトコードは次のとおりです。
#!/bin/bash
date +"%d:%m" >> dbdata.growth
psql -h 192.168.2.173 -U postgres -c "select pg_database_size('ddb'); " | sed -n
'3,3p' | numfmt --to=iec >>dbdata.growth
psql -h 192.168.2.173 -U postgres -c "select pg_database_size('dpkidb'); " | sed
-n '3,3p' | numfmt --to=iec >>dbdata.growth
スクリプトは、次の形式で次の出力を生成します。
26:03
134G
4.4M
26:03
134G
4.4M
私にとって問題は、3つの列がすべて同じ行にあることを望むということです。どうすればいいですか?
ベストアンサー1
すべての出力ラインを交換してください。たとえば、次のようになります。
date +"%d:%m" >> dbdata.growth
次の行:
date +"%d:%m" | tr -d $'\n' >> dbdata.growth
tr
これは、改行を出力ファイルに入れる前に削除するために使用されます。
tr
翻訳または削除ユーティリティです。この場合、この-d
オプションを使用して削除するように指示します。削除を要求する文字は、で表される改行文字です$'\n'
。