我的问题是:
我创建了一个脚本,用"find ."命令引用我的目录X中的所有文件将它们存储在一个文件中,每行一个文件,像这样:
./dossier1/dossier2/fic.txt
./dossier1/dossier2/fic.jpg
我想替换为:
filename;/opt/InfoVista/Portal/site/rubrics/help/dossier1/dosssier2/;no;555;
这是我尝试的:
find . >> list_fic.txt
ligne=';no;555'
std=/opt/InfoVista/Portal/site/rubrics/help/
while read line
do
filename=${$line##.*/} // allow me to delete the path and keep just the filenam
final=$std$nomfic$ligne
echo $final >> final.txt // put the line in the final.txt file
done < list_fic.txt
这是在awk中的一种方法:
awk -F/ -v dir="/opt/InfoVista/Portal/site/rubrics/help/" -v l=";no;555;" '
{
OFS="/" ; f=$NF; NF--; sub(/^.//,"") ; OFS=";" ; print f,dir $0 l
}' list_fic.txt
你的问题不清楚。但是如果后缀和前缀是固定的,这里有一种方法
find . | awk -F "./" '{print "Filname;/opt/InfoVista/Portal/site/rubrics/help/"$1$2<any num of fields>";no;555"}' > final.txt
我需要为当前目录中包含的每个文件创建一个包含以下结构的文件:
thenameofthefileOrdir;/绝对路径;不,555;
我修改了你的解决方案,那工作得很好!!
#!/bin/bash
find . | nawk -F/ -v dir="/opt/InfoVista/Portal/site/rubrics/help/" -v l=";no;555" '
{
OFS="/" ; f=$NF; NF--; sub(/^.//,"") ; OFS=";" ; print f,dir $0 l
}' >> final.txt
现在,我的final.txt的第一行包含当前目录,最后两行对应于这个脚本和final.txt,这三行没用(第一行,两行)