Обработка командной строки - токены и метасимволы

Кажется что apt-get строки имеют предыдущий пробел. Высказывание:

sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' inputfile

должен привести к желаемому результату.

С другой стороны, можно также использовать paste:

paste -d' ' - - < inputfile
3
30.03.2018, 14:08
1 ответ

Это не очень хорошее объяснение. токен — это последовательность символов, которая образует слово или знак препинания. Такие символы, как < и |, также являются частью токенов. Вы можете называть их метасимволами, но это бесполезная терминология. Основные правила таковы:

  • Пробел не является частью токена и разделяет токены.
  • Маркер состоит из обычных символов или из символов оператора ()<>&|;, но не из обоих. Например, foo<@a&>b состоит из токенов foo (обычный), < (оператор), @a ( обычный), &> (оператор) и b.

Кроме того, существуют дополнительные правила цитирования: специальные символы теряют свое значение, если они кавычки, с разными правилами в зависимости от типа кавычек. Например, foo'&&'bar\|qux — это одиночный токен с последовательностью символов foo&&bar|qux.

3
27.01.2020, 21:22

Теги

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