gpt4 book ai didi

linux - 用冒号分隔子列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:46 26 4
gpt4 key购买 nike

我是 linux 的新手,正在尝试解析一堆如下所示的文件 -

  • 一些文字
    • 开始列出一些其他文本
      • 启动子列表1
      • 继续sublist1
    • 更多元素
    • 更多元素2
      • 一个子列表2
        • 一个子列表1

列表之前的所有空格都是制表符。我需要一种方法来解析文本,以便为子列表添加一个冒号...以便它在末尾看起来像以下内容:

  • 一些文字:
    • 开始列出一些其他文本:
      • 启动子列表1
      • 继续sublist1
    • 更多元素
    • 更多元素2:
      • 一个子列表2:
        • 一个子列表1
    • 另一个元素

因此只有在有子列表可用时才添加冒号。

我尝试查看 sed 和 awk 命令,但我无法找到任何存储前一行状态的内容,以便能够在末尾添加冒号。它不必在 sed 或 awk 中完成,但我一直在尝试这些但没有运气。任何建议都会有所帮助。

最佳答案

类似的东西可以解决您的问题:

awk '
function countTabs(line) {
tabs=0;
i=0;
while( substr(line,i++,1) == "\t")
tabs++;
return tabs;
}
{
line1 = $0;
while( getline line2) {
if ( countTabs(line1) < countTabs(line2))
printf("%s:\n" , line1);
else
printf("%s\n",line1);
line1 = line2;
}
print line2;
}'

关于linux - 用冒号分隔子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080462/

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