Regex sed:如何从每行开头删除选定数量的空格(制表符)

Regex sed:如何从每行开头删除选定数量的空格(制表符),regex,sed,Regex,Sed,我有一些python示例代码,每行开头有6个空格 我有这个代码来删除所有的空格 sed 's/^[ \t]*//;s/[ \t]*$//' 但是如何只删除指定数量的空白(在我的例子中是6)?使用这个Perl一行程序(根据您的注释,19个空白): 或要就地更改文件,请执行以下操作: perl -i.bak -pe '^\s{19}' in_file Perl one liner使用以下命令行标志: -e:告诉Perl在线查找代码,而不是在文件中。 -p:一次循环输入一行,默认情况下将其分配给$

我有一些python示例代码,每行开头有6个空格

我有这个代码来删除所有的空格

sed 's/^[ \t]*//;s/[ \t]*$//'
但是如何只删除指定数量的空白(在我的例子中是6)?

使用这个Perl一行程序(根据您的注释,19个空白):

或要就地更改文件,请执行以下操作:

perl -i.bak -pe '^\s{19}' in_file
Perl one liner使用以下命令行标志:
-e
:告诉Perl在线查找代码,而不是在文件中。
-p
:一次循环输入一行,默认情况下将其分配给
$\uu
。在每次循环迭代后添加
print$\uuz

-i.bak
:就地编辑输入文件(覆盖输入文件)。在覆盖之前,通过在原始文件的名称后附加扩展名
.bak
,保存原始文件的备份副本

另请参见:


将我的评论转换为答案,以便将来的访问者可以轻松找到解决方案

sed
应该适合您(根据您的评论):

sed-E的/^[:blank:]{19}/;s/[[:blank:]+$/'文件
要以内联方式保存更改,请执行以下操作:

sed-i.bak-E的/^[:blank:]{19}/;s/[[:blank:]+$/'文件

Try
sed-E的/^[:blank:]{6}/;s/[[:blank:][+$/'
perl -i.bak -pe '^\s{19}' in_file