我使用来自split a fasta file and rename on the basis of first line的Theodros Zelleke的awk答案作为以下代码的模板:
awk '/[[:digit:]]/ {OUT=substr($0,1) ".txt"}; OUT {print > OUT}' /path/to/file
上面的代码导致文件名由整个第1行组成,文件只包含前2行而不是完整的原始文件。
我想根据每个文本文件第一行的位置编号重命名数百个文件。以下是我正在处理的文本文件的2个示例。
文件1将变为" 1000030.txt"
Location Number.: 1000030 Location Name, State
Text: Text
More Text
More Text
More Text
文件2将变为" 100003099111134.txt"
Location Number.: 100003099111134 Location Name, State
Text: Text
More Text
More Text
提前谢谢。
答案 0 :(得分:4)
要将旧文件复制到第一行中有新内容的新文件,您可以使用此awk
awk 'FNR==1 {file=$3} {print > (file".txt")}' oldfiles*
它读取第一行并将其设置为新文件名。
答案 1 :(得分:2)
个人;我只是写一个简单的shell脚本。类似的东西:
# Untested example...
for f in *; do
n=`head -1 $f|cut -c19-26`
mv $f $n
done