Почему одиночная кавычка внутри комментария в команде awk приводит к тому, что кавычки становятся несопоставимыми?

Вы упомянули xargs. Команда xargs появилась еще в PWB/Unix, когда ни оболочка Thompson, ни оболочка Mashey не поддерживали циклы for. Я думаю, что цикл forработает лучше всего в вашем случае. Но это довольно элегантно, когда программы используют конвейеры, когда это возможно, поэтому вот как это сделать с помощью xargs:

printf "%s\n" abc def ghi jkl | xargs -I {} unzip applications/{}.zip -d applications/{}/
-2
10.05.2020, 16:32
2 ответа

Это потому, что ваша оболочка интерпретирует кавычки и интерпретирует остальную часть оператора awk в оболочке, а не в awk.

2
28.04.2021, 23:15

Это не имеет ничего общего с awk. Вы не можете включать одинарную кавычку внутри сценария или строки, разделенных одинарными кавычками, в большинстве оболочек (, таких как Bourne -или csh -, например ). Попробуйте echo 'foo'bar'и убедитесь, что это не удается. Теперь попробуйте echo 'foo\'bar'и убедитесь, что это тоже не работает. Теперь попробуйте echo "foo'bar"и echo 'foo'\''bar'и посмотрите, сможете ли вы понять, почему они успешны (и нет, я не предлагаю вам заключать скрипты в двойные кавычки ). См.https://mywiki.wooledge.org/Quotesдля получения дополнительной информации.

4
28.04.2021, 23:15

Теги

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