Да, вы облажались, создав циклическую ссылку. Вы сделали это в /usr/bin
, поэтому больше не можете выполнять команды.
Да, самый простой способ — получить доступ к испорченной -файловой системе извне, как описано в ответе, на который вы ссылаетесь, и исправить циклическую ссылку.
Похоже, вы хотите что-то вроде:
mkdir -p raxA raxB raxC &&
awk '
/raxA/ {print > ("raxA/new_"FILENAME)}
/raxB/ {print > ("raxB/new_"FILENAME)}
/raxC/ {print > ("raxC/new_"FILENAME)}'./*.csv
Поскольку другие уже указывали на проблему с вашей командой, я даю вам альтернативный способ того, что вы делаете с циклами оболочки -, которых следует избегать .
с помощью awk
вы также можете выполнять поиск шаблонов и разбивать каждый шаблон на несколько файлов.
awk '{ matched=match($0, /rax[ABC]/); };
matched{ dirname=substr($0, RSTART, RLENGTH);
system("mkdir -p " dirname);
print >(dirname"/new_"FILENAME);
matched=0;
}' infile
см.man awk
для функций match()
, substr()
, system()
.
так как ваш файл выглядит как.csv, и вы можете искать шаблоны в определенном столбце, а не во всей строке, добавьте -F,
к команде (, указав разделитель полей входного файла )и замените $0
(, представляющее всю строку в awk
), соответствующим номером столбца в файле.csv, например, для сопоставления шаблонов в первом столбце используйте $1
, во втором столбце — $2
, в третьем — $3
, поэтому на.