Надеюсь, ваш вопрос - это просто упражнение в любопытстве. Несомненно, есть лучшие способы добиться того, что вы пытаетесь сделать, если это не так.
Вместо того, чтобы пытаться использовать сложные последовательности открытых и закрытых одиночных и двойных кавычек, которые могут иметь нечетные побочные эффекты, если они не спарены правильно, вы можете использовать переменные для представления кавычек. Имея, по сути, цитирование третьего уровня, он делает код более легким для чтения. Техника, приведенная ниже, несколько аналогична цитированию Perl's q()
.
Установить переменную q
восьмиричного эквивалента одной цитаты, то вы можете сделать это:
awk 'BEGIN{q = "\047"; system("awk " q "{print}" q " file")}'
Расстояния до вас - каждый сегмент строки объединяются с его соседними сегментами.
Это еще один способ, которым вы могли бы найти более читаемым:
awk 'BEGIN{q = "\047"; system("awk " q"{print}"q " file")}'
Спасибо за хорошее решение. – Tedee12345