我需要帮助使用 Sed 向文件添加标题
Posted
技术标签:
【中文标题】我需要帮助使用 Sed 向文件添加标题【英文标题】:I need assistance adding a header to a file with Sed 【发布时间】:2021-12-24 08:26:27 【问题描述】:我正在寻找一个 sed
唯一的命令来在文件开头添加一个新行,其中包含标题信息 - 排名、标题、系统、年份、制造商、销售。我知道我需要使用 \t
特殊字符来插入一个或多个选项卡。我尝试了一些,但似乎无法使列正确排列。
以下是我想要完成的。
等级名称系统年份制造商销售额 1 Wii 运动 Wii 2006 任天堂 41.36 2 超级马里奥兄弟 NES 1985 任天堂 29.08
我已经尝试了这个命令的各种修改:
sed -i '1iRank\tTitle\tSystem\tYear\tManufacturer\tSales' myfile
没有运气。
【问题讨论】:
Please don't post pictures of text。相反,将文本本身,edit 复制到您的帖子中,并使用格式化工具,如 code formatting。 欢迎来到 Stack Overflow!请拨打tour。您已经尝试过什么?请包括您的最佳尝试。有关更多提示,请参阅How to Ask。 【参考方案1】:插入标题行:
sed -i '1iRank\tTitle\tSystem\tYear\tManufacturer\tSales' my-file
1
是地址(本例中为行号)。 i
是插入(行前)。 a
可用于追加(行后)。 -i
表示在 GNU sed (Ubuntu) 上就地编辑。
如果你想整齐地排列所有内容,你可以用单个选项卡替换每列之间的变量空格,然后使用column -t
添加标题并打印表格:
sed -E 's/ 2,/\t/g' my-file |
column -ts $'\t' -N \
Rank,Title,System,Year,Manufacturer,Sales
只有当您的所有字段至少由两个空格分隔时,这才能正常工作。
【讨论】:
这是我尝试过的命令之一,但标题信息仍然没有对齐。这就是我的问题所在。我需要排名在第一列的正上方,标题与第二列对齐,系统与第三列对齐,依此类推。 我认为可能是这种情况,但不清楚,因为您提到了标签。我将使用一些选项来更新答案,以便整齐地排列。以上是关于我需要帮助使用 Sed 向文件添加标题的主要内容,如果未能解决你的问题,请参考以下文章
使用sed向hadoop-env,sh文件添加JAVA_HOME环境变量的问题