【发布时间】:2016-03-24 13:20:42
【问题描述】:
我是 unix 新手,需要执行以下操作: 我有 10 个文件名:
t1_20160322_load_8977854_49843489_1.xml
t1_20160322_load_8977855_47536364_1.xml
t1_20160322_load_8977856_93435735_1.xml
t1_20160322_load_8977857_78637575_1.xml
t1_20160322_load_8977858_97437542_1.xml
....
我收到了一个包含以下内容的文件 (loadnumber.txt):
8977854;EUROLOADSAMPLE;c
8977855;ASIENLOADSAMPLE;i
8977856;AFRICANLOADSAMPLE;s
8977857;USALOADSAMPLE;l
8977858;CANADALOADSAMPLE;o
我需要将数字替换为文本文件中的值,例如文件 t1_20160322_load_8977854_49843489_1.xml 应更改为
t1_EUROLOADSAMPLE_c.xml
文件 t1_20160322_load_8977854_49843489_1.xml 应改为t1_ASIENLOADSAMPLE_i.xml
我尝试谷歌如何编写unix突击队,但我认为我缺少基本知识,所以我写了以下内容:
for f in $(t1*xml);do;for x in $(cat contracts_generator.txt);do;g=$(echo $x | cut -d\; -f1); n=$(echo $x | cut -d\; -f2); m=$(echo $x | cut -d\; -f3);mv $f t1_$n.xml;done;done
这当然行不通。你能帮我弄清楚,我应该怎么写代码?
非常感谢您提前回答。
【问题讨论】: