Мне нужно извлечь выбранные данные из файла

Если вы просто переименуете (источник и цель в той же файловой системе ), это просто переименование записи каталога. Либо это удается, и каталог получает новое имя, либо происходит сбой, и в этом случае ничего не меняется*.

Если источник и цель находятся в разных файловых системах, данные необходимо скопировать с помощью mv. Различия в характеристиках файловой системы, таких как максимальный размер файла, ограничения в именах файлов и т. д., могут вызвать проблемы. Во избежание проблем сначала скопируйте файлы (cp, rsync, … ), а после успешного завершения копирования удалите файлы в исходное расположение.

*Однако есть некоторые крайние случаи, например, упомянутые в разделе ОШИБКИ вman 2 rename

-2
08.01.2020, 14:53
1 ответ

Несколько вариантов:

  1. Подготовить и вырезать:grep XYZ file | cut -d'|' -f2
  2. (GNU )Только Grep:grep -o 'XYZ.*$' file
  3. Ок:awk -F'|' '/XYZ/{print $2}' file
  4. Массив и цикл Bash (просто потому, что я могу):

declare -A array
eval array=( $(printf '[%s]=%s ' $(tr '|' ' ' < file)) )
for v in ${array[@]}
do 
     [[ $v =~ XYZ ]] && echo $v
done
2
28.01.2020, 05:15

Теги

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