可能性の重複:
UNIX shell script and escaping quotes for AWK scriptUNIX AWKエスケープ単一引用符
私はこれがちょうどUNIXおよびnawkのスクリプトの一部である(その内のブロックのnawkているUNIXスクリプトを持っています。 国と国のコード値を持つファイルから国ISOコードの参照値を読み取り、国に括弧があるときはいつでも問題に直面するこのブロックです名前() または単一apostrope「
これらは単なるサンプル値であり、それは、単一引用符と括弧
Sample values
[email protected] D'IVOIRE
[email protected], Democratic Republic of (was Zaire)
[email protected] (local name: Hrvatska)
との多くの国を持つことができますが、plsは文字列は単一引用符を持っているなら、私はこれらの2つの問題を克服することができますまたはparantheses。
は、私は、この単一引用符をエスケープし、動的apostropeできとにかくありますか?コード
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
リンクの両方での私の質問は、シーケンスに動的な値のための単一引用符とparanthesisをエスケープする方法です内部awkと私はまだ答えを探していますplsのヘルプ – user549432
country_codes.txtとfile.txtからのいくつかのサンプル入力を表示し、どの出力を見たいと思いますか?あなたのコードを構造化するより良い方法がなければならないので、入力ファイルのすべての一行に対して国コードファイルを読む必要はありません。 –