Как переместить файлы, где первая строка содержит строку?

new выделяет объем памяти, необходимый для хранения запрашиваемого объекта / массива. В этом случае n чисел int.

Затем указатель сохранит адрес в этом блоке памяти.

Но будьте осторожны, этот выделенный блок памяти не будет освобожден, пока вы не скажите это, написав

delete [] array;
2
задан PaulG 6 March 2019 в 14:20
поделиться

3 ответа

Я бы добавил в ваш сценарий изменение -

     for file in *.csv; do 
        head -1 "$file" | grep -l -Z -E '.*?FindMyRegex' | xargs -0 -I{} mv {} /home/destination/folder; 
     done
0
ответ дан ViKiG 6 March 2019 в 14:20
поделиться
gawk 'FNR==1{if([110]~/PATTERN/)
    printf "mv %s %s\n",FILENAME, "/target";nextfile}' /path/*.csv
  • Прежде всего, в вашем регулярном выражении: .*?FindMyRegex .*? не имеет никакого смысла, их можно удалить.
  • Вышеуказанный однострочный awk (gawk) создаст для вас mv file target командные строки. Вы можете проверить их, если они вас устраивают, направить вывод в |sh, команды будут выполнены.

  • замените PATTERN вашим шаблоном регулярных выражений, а /target - реальным целевым каталогом.

  • В одной строке предполагается, что имена файлов не содержат специальных символов (пробел, т.е.), если это так, добавьте " с к mv cmd.

0
ответ дан glenn jackman 6 March 2019 в 14:20
поделиться

используя GNU awk для поиска имен файлов, передайте имена файлов в xargs

gawk -v pattern="myRegex" '
    FNR == 1 {if ([110] ~ pattern) printf "%s\0", FILENAME; nextfile}
' *.csv | xargs -0 echo mv -t destination

Если все выглядит нормально, удалите «echo»

0
ответ дан glenn jackman 6 March 2019 в 14:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: