awk印刷アポストロフィ/一重引用符

awk印刷アポストロフィ/一重引用符

awkを使用すると、すべてを脱出する方法がわかりません。

各入力文字列を次の単一引用符で囲む必要があります。

input
string1
string2
string3

output
'string1'
'string2'
'string3'

私は' " $0逃げることに関連するすべてに対抗して戦っていましたが、とても成功することはできませんでした。 $ 0がbashに直接渡されるか、別のことが起こります。

ベストアンサー1

これを行う方法はいくつかあります。

  1. 8進エスケープシーケンスを使用してください。 ASCIIベースのシステムでは、'エンコードはバイト39(8進数047)です。

    awk '{print "\047" $0 "\047"}' input
    'string1'
    'string2'
    'string3'
    
  2. 参照を変数として渡す

     $ awk -v q="'" '{print q $0 q}' input
     'string1'
     'string2'
     'string3'
    

おすすめ記事