wgetを使用すると、Webページが.txtファイルとしてダウンロードされます。保存されたこのファイルの名前は、WebページのURLの一部を使用して指定されます(例:便宜上、wget http://www.example.com/page/12345/ -O 12345.txt
である。txtファイルでsed find IDを使用し、IDを使用してファイル名を変更します
私はシェルスクリプト.sh
ファイルからコマンドを実行しています。複数のコマンドを実行することができます。
ファイルがダウンロードされた後、私は保存したいテキスト/文字をsedで解析します。私が欲しいテキストの一部にはblah blah Product ID a5678
が含まれています。
私が欲しいのは、a5678
を見つけるのにsedを使い、これを使ってファイル12345.txtの名前をa5678.txtに変更することです。
# script.sh
wget http://www.example.com/page/12345/ -O 12345.txt
sed -i '' 's/pattern/replace/g' 12345.txt
sed command to find a5678 # in line blah blah Product ID a5678
some more sed commands
mv 12345.txt a5678.txt (or use a variable $var.txt)?
どうすればよいですか?
この同じID a5678
を使用して、同じ名前のフォルダを作成することもできます。a5678
したがって、.txtファイルは/a5678/a5678.txt
のようなフォルダ内にあります。
mkdir a5678 (or mkdir $var)? && cd a5678
私は半日の回答を検索しましたが、何も見つかりませんでした。私が見つけた最も近いものは Find instance of word in files and change it to the filenameですが、それは私が望むものとまったく反対です。私は変数の使用についても考えました。 https://askubuntu.com/questions/76808/how-do-i-use-variables-in-a-sed-commandでも、見つかった文字を変数として保存する方法はわかりません。
非常に助けを楽しみにしています!ありがとうございました!私はSierraを走らせているMacにいる。
あなたはファイル内_replacing_文字でない限り、私はちょうど私が名前変更のために必要な文字列を抽出するために結果を切断、代わりに 'grep'使用する場合があります。または、perlに切り替えてください... – jdv