AWKが「予期しない改行または文字列の終わり」というエラーをスローしています

user_tmo

私のBashスクリプト:

declare -a lang=('english' 'spainsh')
sms="Free msg: Due to upgrades on apps you’ll need a new version by yyyy/mm/dd to app running. Visit a store or go to"
    url="google.com/UA2392 to upgrade your app." 

awk '{print $1 "," '${servicegrade[0]}' "," '${lang[1]}' ",,," '$sms' "," '$url'}' inputfile.csv > inputfile.txt

エラー:

awk: cmd. line:1: {print $1 "," 267 "," en ",,," Free
awk: cmd. line:1:                                    ^ unexpected newline or end of string
roaima

表示されている問題は、awkコマンドラインと補間されたシェル変数を引用する方法(より正確には引用しない方法)に直接関係しています。(シェルとの両方awk。)

あなたはこれを持っています:

awk '{print $1 "," '${servicegrade[0]}' "," '${lang[1]}' ",,," '$sms' "," '$url'}' inputfile.csv > inputfile.txt

経験的に、私はというエラーメッセージから見ることができservicegrade=267lang=ensms=Free msg:...、しかしurl、我々は仮定しますので、(大丈夫だという)は表示されませんurl=http://example.net

重要な部分は、commnd行であなたの見積もりを見ることです。「一重引用符」内のすべては、単一のコマンドラインとして扱われます。二重引用符に対して一重引用符を隣接させる場合も問題ありません(echo 'hello'"world"単一の引数があります)。ただし、引用符で囲まれていないスペースを導入するとすぐに、2番目のパラメーターになります(echo 'hello' "world"1つではなく2つの単語です)。さらに、変数は引用符で囲まれていないため、値の空白はシェルによって単語の区切りとして扱われます。

これらの変数に空白が含まれていないと仮定し、変数ではなく実際の値であるかのように、コマンドラインに補間します。

awk '{print $1 "," '267' "," 'en' ",,," 'Free msg:...' "," 'http://example.net'}' inputfile.csv > inputfile.txt

次に、冗長な引用符を削除します。

awk '{print $1 "," 267 "," en ",,," Free msg:..."," http://example.net}' inputfile.csv > inputfile.txt

awk引用符で囲まれていない文字列が表示されていることに気付くのに少し時間がかかることはありません。これはawk変数として表示できませんあなたが本当に欲しかったのはこれだったと思います:

awk '{print $1 ",267,en,,,Free msg:...,http://example.net"}' inputfile.csv > inputfile.txt

(出力もCSVスタイルの場合は、二重引用符で囲まれた引数を使用する可能性があります)。

シェル変数を補間できるようにプロセスを簡単に逆にすることができますが、より良いアプローチは、それらのシェル変数をawk変数に割り当てて、それらを使用することです。

awk -v servicegrade="${servicegrade[0]}" -v lang="${lang[1]}" -v sms="$sms" -v url="$url" '{print $1 "," servicegrade "," lang ",,," sms "," url}' inputfile.csv > inputfile.txt

出力テキストに二重引用符で囲まれたパラメーターが必要であると判断した場合awk(少なくとも私のバージョンでは)、この種の構造を理解します。awk '{print $1 "\"" servicegrade "\",\"" lang "\",\"" sms "\",\"" url "\""}'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

awk構文エラー予期しない改行または文字列の終わり

分類Dev

AWKは、シェル内で予期しない改行または文字列の終わりを出力します

分類Dev

光沢のバッチジョブが機能していません:awk:cmd。line:1「予期しない改行または文字列の終わり」

分類Dev

'extern "C"'を使用すると、「文字列リテラルを予期していましたが、代わりにユーザー定義の文字列リテラルが見つかりました」というエラーの原因は何ですか?

分類Dev

URIエンコードされたJSON文字列をデコードするときに、「JSON文字列の解析中に予期しない文字列の終わり」というエラーが発生するのはなぜですか?

分類Dev

Doctrine2を使用したクエリの問題:エラー:文字列の終わりが予期されていました。「。」を取得しました。

分類Dev

文字列が数字で終わっているかどうかを確認すると、「予期しない演算子」がスローされます

分類Dev

Pythonメールライブラリを介してメールを送信すると、「予期された文字列またはバイトのようなオブジェクト」というエラーがスローされます

分類Dev

Ruby on Rails構文エラー、予期しない入力の終わり、keyword_endendを予期しています^

分類Dev

awkのエラー(改行または文字列の終わり)

分類Dev

プロパティ名は文字列のタイプを予期していましたが、apollo-codegenエラーがnullになりました

分類Dev

改行と余分なスペースの問題を回避するにはどうすればよいですか?私はこのエラー「終了していない文字列リテラル」を継続的に取得しているためです

分類Dev

予期しない入力の終了:forループでcurlpostリクエストを送信しようとしたときにオブジェクトエラーのクローズマーカーが予期されていました

分類Dev

Ruby On Rails: 新しいレコードを作成するとエラーが発生します: 構文エラー、予期しない ','、入力の終わりを予期しています

分類Dev

DataOutputSteamが「java.io.IOException:予期しないストリームの終わり」をスローしますか?

分類Dev

複数の画像で終わりのない画像スクローラーを作成しようとしていますが、行き詰まっています、ヒントはありますか?

分類Dev

cmd.exeは、「この時点では予期しない&」というエラーをスローします。

分類Dev

HTMLコードを追加するとPHPコードが機能しませんか?そして、このエラーは表示され続けます(「解析エラー:構文エラー、予期しないファイルの終わり」)?

分類Dev

.NETの無効または予期しないパラメータに対してどのような例外をスローする必要がありますか?

分類Dev

バッチスクリプトで2つの文字列を比較しようとすると、「この時点でWindowsは予期していませんでした」というエラーが発生しました

分類Dev

PySparkプログラムがエラー「TypeError:無効な引数、文字列または列ではありません」をスローしています

分類Dev

解析エラー: searchform.php の構文エラー、予期しない '}' (Wordpress、XAMPP) のファイルの終わりを予期しています

分類Dev

解析エラーが発生します:構文エラー、予期しないファイルの終わり

分類Dev

Drupal jQueryの依存関係により、「Webサイトで予期しないエラーが発生しました。後でもう一度やり直してください。」というエラーがスローされます。

分類Dev

Redmineファイルアップロードエラー-エラーでクライアントを切断しています:リクエスト本文の読み取りエラー:予期しないストリームの終わり(errno = -1004)

分類Dev

csvファイルをsnowflakedbにロードしようとしたときに、「列の解析が期待されている間にレコードの終わりに達しました」エラーが発生する

分類Dev

シェル スクリプトで getopts を使用しているときに予期しないファイルの終わりエラーが発生する

分類Dev

ExpoWebで予期しない型番号がURI文字列エラーを予期していました

分類Dev

Xcodeは「スポットライトが予期せず終了しました」というエラーメッセージを表示します

Related 関連記事

  1. 1

    awk構文エラー予期しない改行または文字列の終わり

  2. 2

    AWKは、シェル内で予期しない改行または文字列の終わりを出力します

  3. 3

    光沢のバッチジョブが機能していません:awk:cmd。line:1「予期しない改行または文字列の終わり」

  4. 4

    'extern "C"'を使用すると、「文字列リテラルを予期していましたが、代わりにユーザー定義の文字列リテラルが見つかりました」というエラーの原因は何ですか?

  5. 5

    URIエンコードされたJSON文字列をデコードするときに、「JSON文字列の解析中に予期しない文字列の終わり」というエラーが発生するのはなぜですか?

  6. 6

    Doctrine2を使用したクエリの問題:エラー:文字列の終わりが予期されていました。「。」を取得しました。

  7. 7

    文字列が数字で終わっているかどうかを確認すると、「予期しない演算子」がスローされます

  8. 8

    Pythonメールライブラリを介してメールを送信すると、「予期された文字列またはバイトのようなオブジェクト」というエラーがスローされます

  9. 9

    Ruby on Rails構文エラー、予期しない入力の終わり、keyword_endendを予期しています^

  10. 10

    awkのエラー(改行または文字列の終わり)

  11. 11

    プロパティ名は文字列のタイプを予期していましたが、apollo-codegenエラーがnullになりました

  12. 12

    改行と余分なスペースの問題を回避するにはどうすればよいですか?私はこのエラー「終了していない文字列リテラル」を継続的に取得しているためです

  13. 13

    予期しない入力の終了:forループでcurlpostリクエストを送信しようとしたときにオブジェクトエラーのクローズマーカーが予期されていました

  14. 14

    Ruby On Rails: 新しいレコードを作成するとエラーが発生します: 構文エラー、予期しない ','、入力の終わりを予期しています

  15. 15

    DataOutputSteamが「java.io.IOException:予期しないストリームの終わり」をスローしますか?

  16. 16

    複数の画像で終わりのない画像スクローラーを作成しようとしていますが、行き詰まっています、ヒントはありますか?

  17. 17

    cmd.exeは、「この時点では予期しない&」というエラーをスローします。

  18. 18

    HTMLコードを追加するとPHPコードが機能しませんか?そして、このエラーは表示され続けます(「解析エラー:構文エラー、予期しないファイルの終わり」)?

  19. 19

    .NETの無効または予期しないパラメータに対してどのような例外をスローする必要がありますか?

  20. 20

    バッチスクリプトで2つの文字列を比較しようとすると、「この時点でWindowsは予期していませんでした」というエラーが発生しました

  21. 21

    PySparkプログラムがエラー「TypeError:無効な引数、文字列または列ではありません」をスローしています

  22. 22

    解析エラー: searchform.php の構文エラー、予期しない '}' (Wordpress、XAMPP) のファイルの終わりを予期しています

  23. 23

    解析エラーが発生します:構文エラー、予期しないファイルの終わり

  24. 24

    Drupal jQueryの依存関係により、「Webサイトで予期しないエラーが発生しました。後でもう一度やり直してください。」というエラーがスローされます。

  25. 25

    Redmineファイルアップロードエラー-エラーでクライアントを切断しています:リクエスト本文の読み取りエラー:予期しないストリームの終わり(errno = -1004)

  26. 26

    csvファイルをsnowflakedbにロードしようとしたときに、「列の解析が期待されている間にレコードの終わりに達しました」エラーが発生する

  27. 27

    シェル スクリプトで getopts を使用しているときに予期しないファイルの終わりエラーが発生する

  28. 28

    ExpoWebで予期しない型番号がURI文字列エラーを予期していました

  29. 29

    Xcodeは「スポットライトが予期せず終了しました」というエラーメッセージを表示します

ホットタグ

アーカイブ