使用可用于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语句中指定的字段宽度即可.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。