Linux
複製文本文件中的行並將修改的行添加到同一文件中的行尾
我想複製文本文件中的行動態編輯它以將所有 / 替換為 | 並粘貼在同一行的同一行。
我在文本文件中有第一行:
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 的多個文本文件
我無法創建新文件並合併它們,這應該是即時的,因為文本文件的名稱不同而且我不知道文件名
試試這個,
awk -F '[/.]' '{print $0" (separator) |"$(NF-2)"|"$(NF-1)}' file http://webpage.com/(name-never-changes)/aCcboeasdfdRD/asdfasdft21.jpg (saperatot) |aCcboeasdfdRD|asdfasdft21
/.
兩個欄位分隔符$0
列印整行$(NF-2) $(NF-1)
倒數第三個和第二個欄位如果你想保存在文件中
選項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