風洞データを処理するためにTecplotを使用していますが、Tecplotへの入力には変数を指定するための特定の形式が必要です。各変数は二重引用符で囲まれています"Variable Name"
。問題は二重引用符を取得するのは簡単ではないということです。printf ' "%s" '
このような効果を出すことができる記事を見つけました。しかし、printfは入力内容に非常に面倒です。sed
を使用する前にデータファイルから変数を転送することはできませんでしたが、使用することを説明するprintf
別の記事が見つかりましたprintf ' "%s" ' $(sed ...)
。この構造はうまくいきますが、私の問題の解決策は半分です。次に、出力を使用してプレースホルダ(XYZXYZXYZ)をに変換したいとprintf
思います。sed
printf ' "%s" ' $(sed ...)
's
sed s/XYZXYZXYZ/` printf ' "%s" ' $(sed -n 1,265p Run-0020) `/ ../../wt/wt-layout_A.dat
sed: -e expression #1, char 12: unterminated `s' command
説明したように、XYZXYZXYZをprintfの出力にどのように変更しますか?
ベストアンサー1
printf
コマンドを二重引用符で囲みます。$(…)
コマンド代替構文を使用してsed
コマンドに一重引用符を追加すると、次のようになります。
sed 's/XYZXYZXYZ/'"$(printf ' "%s" ' $(sed -n '1,265p' Run-0020))"/ ../../wt/wt-layout_A.dat
printf
コマンドから最初の空白文字を削除してそれをに変更できますprintf '"%s" '
。