【问题标题】:How to insert a variable of message in specific column in specific line如何在特定行的特定列中插入消息变量
【发布时间】:2019-10-03 11:16:09
【问题描述】:

我想在基于 linux 的环境中在我的 txt 文件中插入一个 Hash 消息。例如我有一个文件(ABCD.sh) 它有 100 行程序, 我想在第 80 列号(#ADDED TEST)中添加评论消息第 60 行。

 58:######################################################################
 59:SRC ==                                                              
 60:SRC ==                                                    #ADDED TEST
 61:SRC == 

【问题讨论】:

  • 如果第80列已经有文字怎么办?
  • 必须替换插入
  • "replace" 和 "insert" 是两个相反的要求——你不能同时做这两个。您是否要将现有的字符(大概是空白)向右推 10 个字符,这样您的行最终会变宽 10 个字符,或者用#ADDED TEXT 替换它们,这样您的行的长度就会与以前相同。我假设你的线条至少有 80 个字符宽了。

标签: bash awk vim sed echo


【解决方案1】:

使用 GNU sed:

sed -E '60s/./ADDED TEXT/80' file

【讨论】:

    【解决方案2】:

    请您尝试关注一下。

    awk 'BEGIN{FS=OFS=":"} FNR==60{$80="your_text"} 1' Input_file

    【讨论】:

    • 很高兴它对您有所帮助。给它一些时间,你也可以从所有答案中选择任何一个正确的答案。
    • 这怎么行?输入中只有 1 个:,脚本试图在第 79 个: 之后添加文本。
    • @EdMorton,对不起,先生,我以为分隔符是 :,所以我已经发布了。
    • 我明白,我只是不明白 OP 怎么说它的工作!
    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多