Bashスクリプト:同じ行に列データを印刷する

Bashスクリプト:同じ行に列データを印刷する

データベースサイズを計算し、スクリプトが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'

おすすめ記事