sed 修剪尾随空格

sed 修剪尾随空格

尝试删除文件中的尾随空格时

sed -i "s/[\s]+$//" 171.ExcelSheetColumnNumber.py 

在此处输入图片描述

它没有按预期工作。

我的命令有问题吗?

答案1

问题:

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,而+表示文字+
  • 删除方括号,因为在此特定情况下它们是不必要的。
  • 使用能够理解您熟悉的语法的工具:Perl。
  • 或者,在 sed 中启用扩展正则表达式(仍然与 Perl 不同)。

    -E, -r, --regexp-extended
        use extended regular expressions in the script (for portability use POSIX -E).
    
  • 或者,修改您的表达式以仅使用常规 sed: 识别的符号,*而不是+

相关内容