Sed 在文本文件中缩进以数字开头的行
我试图将文本文件中以数字开头的行缩进4个空格 我已经尝试过这个命令,但它可以工作,但是如何缩进只以数字开头的行呢Sed 在文本文件中缩进以数字开头的行,sed,Sed,我试图将文本文件中以数字开头的行缩进4个空格 我已经尝试过这个命令,但它可以工作,但是如何缩进只以数字开头的行呢 sed 's/^/ /' somefile 我尝试过上面的命令,但它会缩进所有内容。您可以添加一个过滤器,只选择以数字开头的行, 在s//命令之前写入: sed -e '/^[0-9]/s/^/ /' somefile 根据您的评论,您的输入来自cat-n的输出, 它打印编号的行,但行不是以编号开头,而是在左侧有空格填充。 如果要缩进以零个或多个空格开头并后跟数
sed 's/^/ /' somefile
我尝试过上面的命令,但它会缩进所有内容。您可以添加一个过滤器,只选择以数字开头的行, 在
s//
命令之前写入:
sed -e '/^[0-9]/s/^/ /' somefile
根据您的评论,您的输入来自cat-n
的输出,
它打印编号的行,但行不是以编号开头,而是在左侧有空格填充。
如果要缩进以零个或多个空格开头并后跟数字的行,则需要调整过滤器。
这只是插入*
(空格和*
)的问题:
您可以尝试将数字前的任何空格或制表符替换为四个空格,如下所示:
sed 's/^[ \t]*\([0-9]\+.*\)/ \1/' file
由于您的文件是cat-n的输出,因此实际上不必检查数字,因为所有行都将以数字开头,因此这可能也适用:
sed 's/^[ \t]*\(.*\)/ \1/'
这似乎没有做任何事情,似乎这是可行的,但没有一个编号的文件-这个例子已经张贴在我原来的问题。我有一个文件是用cat-n file>fileoutsed-e'/^[0-9]/s/^/'output13=works-1在0之前的空白创建的-9@AlexTomko您的要求似乎不完整:行以空格开头,后跟数字。我更新了我的答案来处理这个问题,但下次请小心在你的问题中包含所有要求。@AlexTomko你需要更多帮助吗?
sed 's/^[ \t]*\(.*\)/ \1/'