簡體   English   中英

如何根據文本文件的內容重命名?

[英]How to rename text files according to their content?

我的操作系統是Ubuntu。 我有一個包含文本文件的目錄; 每個文件都包含一行具有唯一ID的行

ID標簽ID號

在文本文件中,行的位置是隨機的,但是,很容易識別出它是簡單的正則表達式

^ IDtag ID [0-9] *

如何根據文件名重命名文件? 即每個文件必須獲得一個新名稱IDnumber.txt,我可以運行Linux Shell腳本或Perl腳本。

嘗試先做

for i in a b c; do echo mv $i `egrep -m1 -e 'IDtag ID[0-9]*' $i | sed -e 's/IDtag ID//'`; done

如果mv正確-刪除回顯位

聽起來像是一項作業。 但是我會部分回答您的問題。 下面將給出要重命名文件的所有命令的列表。

grep ^IDtag * | awk '{split($1,a,":");print "mv",a[1], $2".txt"}'

ivory.192> grep ^IDtag * | awk '{split($1,a,":");print "mv",a[1], $2".txt"}'
mv 000001 000001.txt
mv temp2 000002.txt
ivory.193> 

將其放入for循環中,並在shell腳本中執行每一行。

此外,要獲得跟蹤,您可以將輸出重定向到文件,並授予文件執行權限並將其作為腳本執行。這將達到您的目的,此外,您還擁有重命名的文件列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM