У меня есть столбец B в my.csv в котором каждая ячейка ссылается на имя файла документа в каталоге source_directory/ .

Я хотел бы получить каждое из этих имен, чтобы я мог использовать их в качестве аргументов для других команд оболочки (например, cp).

В идеале замените list.txt в следующем содержании столбца B в my.csv

cp $(<list.txt) target_directory

2 ответа2

1

Как насчет этого:

for i in `awk -F, '{print $2}' my.csv`; do cp "$i" target_directory; done

Команда awk является ключом; -F, говорит использовать запятую в качестве разделителя полей, а затем он может распечатать второе поле.

Чтобы пропустить первую строку:

for i in `awk -F, 'NR==1{next} {print $2}' my.csv`; do cp "$i" target_directory; done
0

Если вы знаете номер столбца, попробуйте:

cut -d, -f2 my.csv | {while read filename; do cp "$filename" target_dir/ ; done}

Предполагается, что вы хотите столбец № 2, и в кавычках нет запятых, которые нужно игнорировать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .