重複の可能性:
UNIXシェルスクリプトとAWKスクリプトの引用符のエスケープ
内部にnawkブロックがあるUNIXスクリプトがあります(これはUNIXおよびNAWKスクリプトの一部です。さらに多くのロジックがあり、以下のコードは間違いなくnawkにあるはずです)国ISOコードのルックアップ値を読み取るこのブロック国と国コードの値を持つファイルから、国名()または単一のアポストロープに括弧がある場合は常に問題に直面します'
これらは単なるサンプル値であり、一重引用符と括弧を使用して多くの国を含めることができます
Sample values
CIV@COTE D'IVOIRE
COD@CONGO, Democratic Republic of (was Zaire)
HRV@CROATIA (local name: Hrvatska)
文字列に一重引用符または括弧がある場合のこれらの2つの問題を克服するのに役立ちますか?
とにかく、この一重引用符とアポストロフィを動的にエスケープできますか?
コード
processbody() {
nawk '{
// These are sample values not exhaustive
COUNTRY_NAME = "COTE D'IVOIRE" // this is read dynamically inside nawk
#COUNTRY_NAME = "CONGO, Democratic Republic of (was Zaire)" // this is read dynamically inside nawk
#COUNTRY_NAME = "CROATIA (local name: Hrvatska)" // this is read dynamically inside nawk
if (COUNTRY_NAME != " "){
file = "/tmp/country_codes.txt"
FS = "@"
while( getline < file ) {
if( $0 ~ COUNTRY_NAME ) {
COUNTRY_CODE = $1
}
}
close( file )
}
printf("%s\n",COUNTRY_CODE) > "/tmp/code.txt"
}' /tmp/file.txt
}
processbody