Я создал скрипт, который разбивает имена файлов на компоненты для вставки базы данных:
find . -name "R*VER" | while read fname
do
awk -v squote="'" -v base=${fname##*/} '
{
split( base, a, "~" );
printf( "INSERT INTO REPORT (COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)\n" );
str = sprintf( "VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")", base, a[1], a[2], a[3], a[7], a[8], a[9], a[10] );
gsub( "\"", squote, str ); # replace double quotes with singles
print str;
}'
done
До сегодняшнего дня он прекрасно работал.Введены новые имена файлов, где a[1]
содержит пробел, например something here~...
.
Теперь у меня есть смесь файлов, которые выглядят так:
R1~blah~blahblah...VER
и R 4~blah~blahblah...VER
Я хочу изменить find
с find . -name "R*VER"
на find . -name "* *"
, но это исключит все файлы без пробелов в имени файла.
Какой самый эффективный способ сделать это?