Когда я попытался запустить вашу команду сначала, я получил ошибку:
awk: '/DoLabelQuery\(self\)/
awk: ^ invalid char ''' in expression
'/QName\[[[[:digit:]][[[:digit:]]]/' is not recognized as an internal or external command,
operable program or batch file.
'/QName\[[[[:digit:]]]/' is not recognized as an internal or external command,
operable program or batch file.
'/' is not recognized as an internal or external command,
operable program or batch file.
'/endMethod/' is not recognized as an internal or external command,
operable program or batch file.
'/endmethod/' is not recognized as an internal or external command,
operable program or batch file.
'/add\' is not recognized as an internal or external command,
operable program or batch file.
'/' is not recognized as an internal or external command,
operable program or batch file.
из-за чего создается впечатление, что все части скрипта awk
анализируются как отдельные слова, и многие из них затем обрабатываются, как если бы они были командами после ||
, Это потому, что, как показывает этот SO вопрос, одинарные кавычки на самом деле не являются кавычками в оболочке Windows cmd, как они есть (большинство?) Linux оболочки. cmd использует только двойные кавычки, что, к счастью, прекрасно работает для этой команды, поэтому решение здесь заключается в использовании:
awk "/DoLabelQuery\(self\)/||/QName\[[[[:digit:]][[[:digit:]]]/||/QName\[[[[:digit:]]]/ || /;BUTTON =/ || /endMethod/ || /endmethod/ || /add\(/ || /;CODE = /" HELLO.fsl > x.txt
хотя я ожидаю, что помещение команд в файл и их использование также должно работать.