2016-05-04 14 views
0

sedを使用してファイルのフルパスをテキストに置き換えるBASHスクリプトを作成しています。readlink(またはsimmilar)と一緒にsedコマンドを使用して、フルパスをテキストに置き換えます。

私は現在、これを持っている:

Path= readlink -e /home/user/Videos/*.mp4 
sed -i "s/original_text/$Path/g" /home/user/Documents/Text.txt 

アイデアは、単一のMP4ビデオのパステキストファイルに(そのフォルダ内の他の動画はありません)ので、私はする必要はありませんを交換することです私がそれを交換したいときはいつもビデオの名前を書いてください。

私はこの問題のさまざまなオプションを試しましたが、動作させることはできません。

ありがとうございます。変数にコマンドの出力を保存する

+0

の後にスペースを削除してください

sed -i "[email protected][email protected][email protected]" /home/user/Documents/Text.txt 

を? – fedorqui

答えて

1

使用コマンド置換:変数を宣言しながら、

Path="$(readlink -e /home/user/Videos/*.mp4)" 

また、シェルは=の周りにどんな空間(複数可)をサポートしていません。


複数のファイルを持っている場合は、より良い配列を使用します。私はあなたの$Pathは、例えば、値のslash(/)を持っていると信じている

Paths=($(readlink -e /home/user/Videos/*.mp4)) 

をして"${Paths[@]}"

+0

ありがとう、魅力的な作品 – Cris

1

によって配列の要素にアクセスします/home/user/Videos/foo.mp4、これはあなたのsedを失敗させるでしょう。 sedのsコマンドには他の区切り文字を使うことができます。

このsedを行してみてください。また、あなたのreadlinkコマンドを引用し、あなたが取得しているエラーが何であるかを右=

関連する問題