Я хочу сделать следующее
awk 'BEGIN {FS=" ";} {printf "'%s' ", $1}'
Но такой способ экранирования одинарной кавычки не работает
awk 'BEGIN {FS=" ";} {printf "\'%s\' ", $1}'
Как это сделать? Спасибо за помощь.
Некоторые языки избегают кавычек, помещая два из них в ряд, возможно, попробуйте это.
—
joshuahealy
Я попробовал awk 'BEGIN {FS = "";} {printf "' '% s' '", $ 1}', но одиночная кавычка не была напечатана.
На этой странице сказано, что включение одинарной кавычки в строку, заключенную в одинарные кавычки, невозможно. Возможно, вам придется преобразовать в двойные кавычки.
—
joshuahealy
Это невозможно, но две соседние строки оболочки в одинарных кавычках сливаются в один параметр. И две строки оболочки в одинарных кавычках, склеенные непробельными символами, также склеиваются в один большой глобус:
—
Kaz
'abc'd'ef'
is abcdef
: literal plus d
plus literal. Это d
находится за пределами кавычек, и вы можете заменить d
его \'
на make, 'abc'\''ef'
который оценивается abc'ef
.