Sed 在行尾添加空格

Sed 在行尾添加空格,sed,Sed,相关的: 我看了这个问题,尝试了上面答案中的所有方法;他们都没有工作。每次我尝试它们,然后用Notepad++打开文件时,它都会在新行上显示我要添加的内容(20个空格) 我所拥有的: word word number [EOL] 我想要的是: word word number [EOL] 我现在的结局是: word word number [EOL]

相关的:

我看了这个问题,尝试了上面答案中的所有方法;他们都没有工作。每次我尝试它们,然后用Notepad++打开文件时,它都会在新行上显示我要添加的内容(20个空格)

我所拥有的:

word       word     number    [EOL]
我想要的是:

word       word     number                       [EOL]
我现在的结局是:

word       word     number    [EOL]
                  [EOL] 
cat-vet
显示该行以

 number          ^M$
正常使用cat时,^M不会打印,所以我猜这就是问题所在


简言之,如何通过编程在这些行的末尾添加空格?我可以使用bash或powershell(更喜欢bash)。

您的文件可能有DOS样式的CR-NL行结尾。因此,请尝试此sed命令,该命令将删除回车符(如果存在)并添加20个空格:

sed 's/\r\?$/                    /'

^M
表示文件具有DOS/Windows样式的行尾。运行
dos2unix
对其进行转换,然后运行其中一个命令以再次追加到该行。

您使用哪个命令生成不需要的两行结果?此答案中的所有命令:我全部尝试了,它们都生成了两行?正确。我以前对一些文件做了一些操作,最终导致命令工作,但现在我记不起我做了什么,我无法复制它。我猜它是
dos2unix
<代码>^M是Windows行的结尾。首先尝试运行
dos2unix
,然后再次尝试其中一个命令。我不确定它是否很慢或是否正在等待输入,但输入该命令后它将挂起。如果我将*.dat添加到它的末尾,它不会做任何事情。添加*.dat和-i标志,这样做是正确的