2016-08-29 5 views
1

私はMac Yosemite、bashシェルを使用しています。これらのどちらもが、私の出力に単一引用符を追加しますawkコマンドの出力に一重引用符を追加するにはどうすればよいですか?

awk -F, '{OFS=",";print ''$1'',$4,$6,$7}' my_list.csv 

awk -F, '{OFS=",";print "'"$1"'",$4,$6,$7}' my_list.csv 

...私は出力に私の出力の単一引用符をしたい、と私は成功せず、いくつかのことを試してみました。どうすればこれを達成できますか?変数を使用して

+0

を[編集]あなたの質問私たちは、あなたを助けるために始めることができそうでない場合、我々はただ推測しているので、簡潔に、テスト可能なサンプル入力と期待される出力を含むように... –

答えて

3

は行くための一つの方法である:

kent$ echo "a b c"|awk -v q="'" '$1=q$1q' 
'a' b c 

か、エスケープ道選ぶ:私は第一1を好む

kent$ echo "a b c"|awk '$1="'\''"$1"'\''"' 
'a' b c 

を。

+0

'variable'メソッドがより使いやすく、エラーが起こりにくい++ –

2

あなたにも進コードを使用することができます。

# octal code 047 for ' 
awk -F, -v OFS=, '{print "\047" $1 "\047", $4, $6, $7}' my_list.csv 
+0

こんにちは、私はこの文でエスケープしようとしました - awk -F、 '{OFS ="、 "; print $ 1、u.id、u.first_Name、u .last_name、u.url FROM user u、user_role urここで、u.id = ur.user_idおよびlower(ur.role_id)= "\ x27" $ 4 "\ x27"、$ 4、$ 6、$ 7} 'my_list.csvエラー "awk:ソース行1の構文エラー"。 –

+0

'awk '{print" \ 047 "$ 0" \ 047 "}' <<<" 123 "'を実行すると、どのような出力が得られますか? – anubhava

+1

マイク - あなたは 'u.id'がawkを意味すると思いますか?それが何であれ - それは意味ではないので、構文エラーです。あなたのコメントのコードが何をしたかったのかは分かりませんが、それはawkの構文ではありません。 –

関連する問題