テキストファイルから1行をコピーし、変更された行を同じファイルの行末に追加します。

テキストファイルから1行をコピーし、変更された行を同じファイルの行末に追加します。

テキストファイルから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

おすすめ記事