gpt4 book ai didi

linux - 塞德/awk : Aligning words in a file

转载 作者:太空狗 更新时间:2023-10-29 12:10:37 25 4
gpt4 key购买 nike

我有一个具有以下结构的文件:

# #################################################################
# TEXT: MORE TEXT
# TEXT: MORE TEXT
# #################################################################

___________________________________________________________________
ITEM 1
___________________________________________________________________
PROPERTY1: VALUE1_1
PROPERTY222: VALUE2_1
PROPERTY33: VALUE3_1
PROPERTY4444: VALUE4_1
PROPERTY55: VALUE5_1

Description1: Some text goes here
Description2: Some text goes here

___________________________________________________________________
ITEM 2
___________________________________________________________________
PROPERTY1: VALUE1_2
PROPERTY222: VALUE2_2
PROPERTY33: VALUE3_2
PROPERTY4444: VALUE4_2
PROPERTY55: VALUE5_2

Description1: Some text goes here
Description2: Some text goes here

我想使用 sed 或 awk 向文件添加另一个项目:

 sed -i -r "\$a$PROPERTY1:     VALUE1_3" file.txt
sed -i -r "\$a$PROPERTY2222: VALUE2_3" file.txt

等所以我的下一项看起来像这样:

___________________________________________________________________
ITEM 3
___________________________________________________________________
PROPERTY1: VALUE1_3
PROPERTY222: VALUE2_3
PROPERTY33: VALUE3_3
PROPERTY4444: VALUE4_3
PROPERTY55: VALUE5_3

Description1: Some text goes here
Description2: Some text goes here

values 是锯齿状的。如何像以前的项目一样将我的值左对齐?我可以在这里看到 2 个解决方案:

  1. 在将值插入文件时对齐值。
  2. 按照我的方式将值插入到文件中,然后对齐它们。

命令

sed -i -r "s|.*:.*|&|g" file.txt

捕获我想要对齐的属性和值,但我无法正确对齐它们,即

awk '/^.*:.*$/{ printf "%-40s %-70s\n", $1, $2 }' file.txt

它打印出文件,但它包含描述值和标签,如果它们包含空格或破折号,则会剪切这些值。真是一团糟。

根据我在 Stack Overflow 和一些博客上找到的内容,我尝试了更多命令,但没有任何命令满足我的需要。

注意:描述标签的值没有锯齿状 - 这是因为我以单独的方式将它们写入文件。

我的命令有什么问题?我如何实现我的需求?

最佳答案

当你的文件没有标签时,试试这个:

sed -r 's/: +/:\t/' file.txt | expand -20 

当这有效时,将输出重定向到一个 tmp 文件并将 tmp 文件移动到 file.txt

关于linux - 塞德/awk : Aligning words in a file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com