テキストファイルから1行をコピーしてすぐに編集してすべての/を|に置き換えて、同じ行の同じ行に貼り付けたいです。
テキストファイルの最初の行は次のとおりです。
http://webpage.com/(name-never-changes)/aCcboeasdfdRD/asdfasdft21.jpg
(name-never-changes)と.jpgの間にテキストをコピーする
/aCcboeasdfdRD/asdfasdft21
/に変更|
|aCcboeasdfdRD|asdfasdft21
そして、URLのある行の末尾に区切り文字を追加します。区切り文字は、テキスト、数字、または特殊文字です。
http://webpage.com/(name-never-changes)/aCcboeasdfdRD/asdfasdft21.jpg (separator) |aCcboeasdfdRD|asdfasdft21
これはURLが異なる複数のテキストファイルに対して機能します。
新しいファイルを作成してマージすることはできません。テキストファイルの名前が異なり、ファイル名がわからないため、動的である必要があります。
ベストアンサー1
この試み、
awk -F '[/.]' '{print $0" (separator) |"$(NF-2)"|"$(NF-1)}' file
http://webpage.com/(name-never-changes)/aCcboeasdfdRD/asdfasdft21.jpg (saperatot) |aCcboeasdfdRD|asdfasdft21
/.
2 つのフィールド区切り記号$0
行全体を印刷$(NF-2) $(NF-1)
最後から3番目と2番目のフィールド
ファイルとして保存したい場合
オプション1:(行が少ない場合)
echo "`awk -F '[/.]' '{print $0" (separator) |"$(NF-2)"|"$(NF-1)}' file`" > file
オプション2:(大容量ファイルの場合)
awk -F '[/.]' '{print $0" (separator) |"$(NF-2)"|"$(NF-1)}' file > tempFile ; mv tempFile file
フォルダに複数のファイルがある場合:
cd /path/to/dir
for file in `ls`
do
echo "`awk -F '[/.]' '{print $0" (separator) |"$(NF-2)"|"$(NF-1)}' $file`" > $file
done