私はBashを使用して、WindowsからLinuxにRobot Frameworkリソースファイルを変換するシェルスクリプトを書いています。リソースファイル自体の内容は重要ではありませんが、ここには必要最小限の完全で検証可能な例があります。 beep
は、ファイルをアップロードするサイトの能力をテストするために使用されるタイプのない空のファイルです。.txtファイル内の未定義の場所の文字列をシェルスクリプトで置き換えるにはどうすればよいですか?
*** Variables ***
${DEFAULT_FILE} C:\\Users\\user01\\Desktop\\beep
、その変数の前と後にその場所は動作しませんハードコーディング宣言した変数の指定されていないと、刻々と変化する数があるでしょう。
私は次のように、シェルスクリプトで、このファイルを変更したい:
*** Variables ***
${DEFAULT_FILE} //home//user01//Desktop//beep
関与リテラルは一つの壁を私を駆動し、他のダウン、およびエラーは、同様に私を運転しているされていますナッツ。私はsed
を使用しようとしましたが、Stack Overflowの構文の推奨事項はどこにでもあります。
はここに私のコードの最新バージョンです:
old="C:\\\\Users\\\\user01\\\\Desktop\\\\beep"
new="//home//user01//Desktop//beep"
sed -i 's|'"${old}"'|'"${new}"'' /home/user01/Desktop/test.txt
私の限られたバッシュの経験を持つ、私はそれは単純なものだと確信していますが、私の人生のために私はそれを把握することはできません。私が得ている最新のエラーは、パターンsed: -e expression #1, char [some number here]: unterminated 's' command
に従います。番号の値は毎回変わります。
試しました。コンソールはエラーを返しませんでしたが、ファイルは変換されませんでした。副作用として、スクリプトはファイルを実行するように見えました。 –
それは完璧に働いた、ありがとう。 –