Вы абсолютно НЕ МОЖЕТЕ использовать одну цитату внутри сценария с одной кавычкой, поскольку эта цитата абсолютно обозначает конец этого скрипта [сегмент].Варианты у вас есть следующие:
- Поместите сценарий в файле «Foo», как
{print "'"$0}
и выполнить как: awk -f foo file
или
- Используйте последовательность побег
\047
везде вы хотите напечатать цитату: awk '{print "\047"$0}' file
или
- Сохранить котировка в переменной:
awk -v q=\' '{print q$0}' file
или
- Разделяйте сценарий AWK с двойной вместо одинарных кавычек и избежать ничего оболочка может заботиться о: AWK «{печать \» '\ „\ $ 0}“ файл
- Опустить awk a й обратно к раковине только, чтобы получить цитату:
awk '{print "'\''"$0}' file
Конечный пункт списка выше, фактически 2 отдельных сегментов AWK сценария ('{print "'
и '"$0}'
) с небольшим количеством оболочки в середине (\'
), так что, когда конец результат заключается в конкатенации, которые передаются оболочкой команде awk
для выполнения, вы получаете то, что хотите.
FWIW Я бы использовал «1», если ваш скрипт содержит более двух строк, «2» или «3», в противном случае «3» является моим личным предпочтением, но YMMV. Я бы не сделал 4 или 5.
+1 для умного подхода –