Невозможно установить много символов для разделителя полей в AWK - PullRequest
2 голосов
/ 14 марта 2009

Я хочу иметь - [пробел] в качестве разделителя полей в AWK.

Например,

awk -F-[space] {' print $1 '}

Как можно использовать много символов в качестве разделителя полей в AWK?

[править]

Точный вывод команды Влада

$echo /Users/Sam/Dropbox/Education/Chemistry/Other\ materials/*.pdf | sed -e 's: : - :g'
/Users/Sam/Dropbox/Education/Chemistry/Other - materials/CHE_IB_LAB.pdf - /Users/Sam/Dropbox/Education/Chemistry/Other - materials/Lecture19_20_21.pdf

Точный вывод команды Влада с помощью sed

$echo /Users/Sam/Dropbox/Education/Chemistry/Other\ materials/*.pdf
/Users/Sam/Dropbox/Education/Chemistry/Other materials/CHE_IB_LAB.pdf /Users/Sam/Dropbox/Education/Chemistry/Other materials/Lecture19_20_21.pdf

1 Ответ

5 голосов
/ 14 марта 2009

Знайте свою цитату :), но имейте в виду, что GNU awk -F принимает расширенное регулярное выражение (ERE) в качестве аргумента, поэтому вам также может потребоваться соответственно экранировать, если вы хотите текстовое соответствие, а не ERE, например,

awk -F '- ' '{ print $1 }'

UPDATE

Ваш последний комментарий все еще неясен.

  1. Каковы полные пути файлов PDF на вашем диске
  2. какой именно вывод вы требуете от этих файлов?

Мне нужен конкретный пример, например,

  1. для следующих файлов:

    ../Phy/Phy1/file1.pdf
    ../Phy/file2.pdf
    ../Che/Che1/file3.pdf
    ../Che/file4.pdf
    ../file5.pdf
    ../Phy2/file6.pdf
    
  2. Я хочу отобразить:

    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'

Затем отредактируйте исходное сообщение и добавьте следующее разделенное :

  1. точный вывод вышеуказанной команды (команд) (copy-paste)
  2. точный результат вышеприведенных команд измененных вами в соответствии с вашими потребностями
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...