Я использую awk '{gsub(/^[ \t]+|[ \t]+$/,""); print;}' in.txt > out.txt
для удаления как ведущих, так и завершающих пробелов.
Проблема заключается в том, что выходной файл имеет завершающие пробелы! Все строки имеют одинаковую длину - они правильно дополняются пробелами.
Что мне не хватает?
ОБНОВЛЕНИЕ 1
Проблема, вероятно, связана с тем, что конечные пробелы не являются "нормальными" пространствами, а символами \x20 (DC4).
ОБНОВЛЕНИЕ 2
Я использовал gsub (/'[[:cntrl:]]|[[:space:]]|\x20/,"")
, и он работал.
Две странные вещи:
-
Почему\x20 не рассматривается как управляющий символ?
-
Использование
'[[:cntrl:][:space:]\x20
НЕ работает. Почему?