gpt4 book ai didi

linux - 在 Linux 中将分隔文件转换为固定宽度

转载 作者:IT王子 更新时间:2023-10-29 00:52:16 27 4
gpt4 key购买 nike

使用 bash 可用的工具,如何转换分隔数据

foo|bbbaaarrr|bazz

固定宽度数据

foo      bbbaaarrrbazz     EOL   

我尝试使用列,因为文档暗示我可以定义列宽,但没有用。我确信使用 sed 或 awk 很简单,但我对它们不熟悉。

最佳答案

以下应该适合您:

column -t -s '|' input_file_here

它将输入文件转换为表格格式。输入记录分隔符由 -s 指定。如果您想要字段中的空格填充以外的内容,请使用 -o 设置输出分隔符。输出分隔符默认为两个空格,因此输出中每列之间将有两个空格。

示例:

$ cat input
hello|world|testing
a|b|c
another|test|line

$ column -t -s '|' input
hello world testing
a b c
another test line

http://man7.org/linux/man-pages/man1/column.1.html


编辑:

如果您需要每个字段的长度都是固定的,您可以使用awk。您需要为您的文件设置输入分隔符,但这样的事情应该有效:

$ awk -F '|' '{ for (i=1; i<=NF; i++) { printf("%-10s", $i); } print ""; }' input
hello world testing
a b c
another test line

只需更改 printf 语句中指定的字段宽度即可。

关于linux - 在 Linux 中将分隔文件转换为固定宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826429/

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