Chinaunix

标题: 带"|" 分隔符的文本格式化输出 [打印本页]

作者: jack1007    时间: 2011-04-11 17:36
你把  |  都替换成tab呀
作者: li2002    时间: 2011-04-11 17:52
sed 's/|/\t/g' a.txt|column -t
作者: xiaopan3322    时间: 2011-04-11 17:53
vim中:
  1. :%!column -t
复制代码

作者: Hendane    时间: 2011-04-11 17:56
回复 4# li2002


    TKS!
作者: Hendane    时间: 2011-04-12 09:37
回复 4# li2002


在linux下面#sed -e '1i\ddddd' 2.txt
成功执行,但是在hp-ux下执行上述命令报错,不知道hp-ux下如何处理?



$sed -e '1i\ddddd' lock
sed: Function 1i\ddddd cannot be parsed.


而且,hp-ux下也没有column命令,只有 col命令,col - filter reverse line-feeds and backspaces

linux column:column - columnate lists


作者: yinyuemi    时间: 2011-04-12 09:42
回复 7# Hendane


    try:
awk '{gsub(/\|/,"\t");FS="\t"}{for(i=1;i<=NF;i++) printf "%-20s", $i;print ""}'
红色的部分可以调整
作者: yinyuemi    时间: 2011-04-12 09:47
晕了,可以不替换:

awk -F'|' '{for(i=1;i<=NF;i++) printf "%-15s", $i;print ""}'
作者: blackold    时间: 2011-04-12 09:48
try
  1. column -ts \|  urfile
复制代码

作者: chenbin200818    时间: 2011-04-12 09:57
sed 's/|\+/\t /g'
这样就对齐了

GNU sed 版本 4.2.1
作者: Hendane    时间: 2011-04-12 10:02
回复 10# blackold


此命令在hp-ux下无法使用。
作者: blackold    时间: 2011-04-12 10:04
回复 12# Hendane


    哪有sed或tr再column  -t或printf
作者: Hendane    时间: 2011-04-12 10:14
回复 9# yinyuemi


谢谢各位。
    这个在hp-ux可以正常使用,但是我还想在第一行加入标题:

dbname      tabname                rowidlk   keynum      type    sid                    user          waiter

    请问如何实现?
作者: yinyuemi    时间: 2011-04-12 10:24
回复 14# Hendane
  1. awk -F'|' '{for(i=1;i<=NF;i++) printf "%-15s", $i;print ""}' <(echo "dbname|tabname|rowidlk|keynum|type|sid|user|waiter" ) <(cat file)
复制代码

作者: li2002    时间: 2011-04-12 11:21
awk一定可以解决LZ的问题
作者: greysky-zfj    时间: 2011-04-12 14:22
awk -F"|" 'BEGIN{OFS=" "}{fied=$1;$1=fied;print $0}'   2.txt|column -t




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2