При попытке удалить завершающие пробелы в файле
sed -i "s/[\s]+$//" 171.ExcelSheetColumnNumber.py
это не сработало, как ожидалось.
Есть ли проблемы с моими командами?
Проблема:
Sed не распознает [\s]+
как последовательность пробельных символов.
Решение:
perl -i -lpe "s/\s+$//" 171.ExcelSheetColumnNumber.py
или:
sed -i -r "s/\s+$//" 171.ExcelSheetColumnNumber.py
или:
sed -i "s/\s\s*$//" 171.ExcelSheetColumnNumber.py
или, согласно стальному приводу Предложение :
sed -i "s/[ \t]*$//" 171.ExcelSheetColumnNumber.py
Объяснение:
[\s]
означает \
или s
для простого sed, и [ 119] означает буквальный +
. В качестве альтернативы, включить расширенные регулярные выражения в sed (по-прежнему не то же самое, что Perl).
-E, -r, --regexp-extended
use extended regular expressions in the script (for portability use POSIX -E).
*
, а не +
.