小编Str*_*ler的帖子

如果行长度小于固定长度,如何在行中间添加空格?

如果任何行的长度小于固定长度(10),我想在文本文件的中间添加空格。空格的位置固定在第 4 个字符之后。

\n

像这样的文件:

\n
ABCEFGH  K<\xe2\x80\x94 length: 10\nABCDE  FGH<- length: 10\nABCD  EFG<- length: 9\nABCDE FGH<- length: 9\nABCDE<-length: 5\n
Run Code Online (Sandbox Code Playgroud)\n

期望的输出:

\n
ABCEFGH  K<\xe2\x80\x94 length: 10\nABCDE  FGH<- length: 10\nABCD   EFG<- length: 10\nABCD  EFGH<- length: 10\nABCD     E<- length: 10\n
Run Code Online (Sandbox Code Playgroud)\n

我\xe2\x80\x99m 对 bash 真的很陌生。如果行小于固定长度,我尝试过使用 awk 和 sed 附加 0 之类的方法。它工作完美,但我想要实现的是在给定位置添加空格,从而修改原始文件。

\n

我很感激任何见解!

\n

我尝试过的方法:\n< /sf/ask/3251062531/固定长度/46443954>

\n

更新:

\n
awk \'{ if(length<10) printf "%s%0*d\\n",$0,10-length,0; else print }\' test.txt\n\n
Run Code Online (Sandbox Code Playgroud)\n

这是我尝试过的上述链接中的代码。由于我无法\xe2\x80\x99想出如何在中间添加空格,并使每行保持固定长度,所以我无法\xe2\x80\x99t提供它的代码。对于没有提供代码,我深表歉意。

\n

unix bash shell awk sed

1
推荐指数
1
解决办法
423
查看次数

标签 统计

awk ×1

bash ×1

sed ×1

shell ×1

unix ×1