Знайте свою цитату :), но имейте в виду, что GNU awk
-F
принимает расширенное регулярное выражение (ERE) в качестве аргумента, поэтому вам также может потребоваться соответственно экранировать, если вы хотите текстовое соответствие, а не ERE, например,
awk -F '- ' '{ print $1 }'
UPDATE
Ваш последний комментарий все еще неясен.
- Каковы полные пути файлов PDF на вашем диске
- какой именно вывод вы требуете от этих файлов?
Мне нужен конкретный пример, например,
для следующих файлов:
../Phy/Phy1/file1.pdf
../Phy/file2.pdf
../Che/Che1/file3.pdf
../Che/file4.pdf
../file5.pdf
../Phy2/file6.pdf
Я хочу отобразить:
PhyPhy1 file1.pdf - Phy file2.pdf - Che/Che1 file3.pdf - Che file4.pdf
Обратите внимание, что в случае файлов примера выше, команда:
echo lpr ../{Che,Phy}/{*.pdf,*/*.pdf}
будет только дисплей:
lpr Che/file4.pdf
lpr Che/Che1/file3.pdf
lpr Phy/file2.pdf
lpr Phy/Phy1/file1.pdf
Давайте сначала разберемся с этой частью, а потом будем беспокоиться о тире и т. Д.
UPDATE
OK. Пожалуйста, выполните одну или обе из следующих почти эквивалентных команд:
echo Dropbox/Mas/edu/{Phy,Che}/*.pdf | sed -e 's: : - :g'
ls -1d Dropbox/Mas/edu/{Phy,Che}/*.pdf | paste -s -d '|' - | sed -e 's:|: - :g'
Затем отредактируйте исходное сообщение и добавьте следующее разделенное :
- точный вывод вышеуказанной команды (команд) (copy-paste)
- точный результат вышеприведенных команд измененных вами в соответствии с вашими потребностями