并排打印文件内容

时间:2016-08-10 16:36:03

标签: linux bash scripting

我有一个包含以下内容的文件。我需要并排打印每一行

hello
1223
man
2332
xyz
abc

所需输出:

hello 1223
man   2332
xyz   abc

除了粘贴命令之外还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

您可以使用此 #!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -t nat -F iptables -X iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <Server3-IP>:80 iptables -t nat -A POSTROUTING -p tcp -d <Server3-IP> --dport 80 -j SNAT --to-source <Server1-IP> iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination <Server2-IP>:80 iptables -t nat -A POSTROUTING -p tcp -d <Server2-IP> --dport 22 -j SNAT --to-source <Server1-IP> iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination <Server3-IP>:80 iptables -t nat -A POSTROUTING -p tcp -d <Server3-IP> --dport 443 -j SNAT --to-source <Server1-IP>

awk

这为奇数行设置awk '{ORS = (NR%2 ? FS : RS)} 1' file hello 1223 man 2332 xyz abc (输出记录分隔符)等于输入字段分隔符(ORS),对于偶数行,它将设置为输入记录分隔符(FS )。

要使表格数据使用RS

column -t

答案 1 :(得分:1)

awk / gawk解决方案:

$ gawk 'BEGIN{ OFS="\t"} { COL1=$1; getline; COL2=$1; print(COL1,COL2)}' file
hello   1223
man     2332
xyz     abc

Bash解决方案(无粘贴命令):

$ echo $(cat file) | while read col1 col2; do printf "%s\t%s\n" $col1 $col2; done
hello   1223
man     2332
xyz     abc