Bashの2つの単語の間に区切り記号を追加する

Bashの2つの単語の間に区切り記号を追加する

私のクエリは次のとおりです

QUERY="SELECT 'Your Name:', FullName, 'Your Phone:', Phone, 'Email:', Email FROM Table1 JOIN  WHERE EmpID=001;"

私が得た結果は次のとおりです。

Your Name: Samanta Your Phone: 111-111-1111 Email: [email protected]

しかし、印刷するときは、次のような出力が必要です。

Your Name: Samanta
Your Phone: 111-111-1111
Email: [email protected]

私はこれを試しました:

出力 =executeSQLQuery "$QUERY" | tr -c ' ' '\n'

動作しません。

ベストアンサー1

output=executeSQLQuery "$QUERY" |sed 's/: [^ ]* /& \n/g'

上記のコマンドは以下を生成します。

user@user:~> z="Your Name: Samanta Your Phone: 111-111-1111 Email: [email protected]"
user@user:~> echo $z | sed 's/: [^ ]* /& \n/g'
Your Name: Samanta  
Your Phone: 111-111-1111  
Email: [email protected]
user@user:~> 

このコマンドは、コロン(':')、スペース、およびスペース以外のすべての文字で構成される正規表現の一致を使用します。ただし、データに空白文字が含まれていると、コマンドは正しく失敗します。

おすすめ記事