我从你那里得到了以下脚本
stack overflow
:
#!/bin/sh
in_file=temp2.txt
params=6
res_file=$(mktemp)
sep=' '
cnt=0
for i in $(cat $in_file | head -$((params*2))); do
if [ $((cnt % 2)) -eq 0 ]; then
echo $i
fi
cnt=$((cnt+1))
done | sed ":a;N;\$!ba;s/\n/$sep/g" >>$res_file
cnt=0
for i in $(cat $in_file); do
if [ $((cnt % 2)) -eq 1 ]; then
echo -n $i >>$res_file
fi
if [ $(((cnt+1) % (params*2))) -eq 0 ]; then
echo >>$res_file
elif [ $((cnt % 2)) -eq 1 ]; then
echo -n "$sep" >>$res_file
fi
cnt=$((cnt+1))
done
cat $res_file | column -t
但是我有大约100多行,我得到一个错误**“column:line To long”**如下:
****列:行太长****千兆以太网0/0千兆以太网1/0/3千兆以太网1/0/5千兆以太网1/0/10
千兆以太网1/0/19千兆以太网1/0/33千兆以太网1/0/2
千兆以太网1/0/4千兆以太网1/0/7千兆以太网1/0/18
千兆以太网1/0/30千兆以太网1/0/44千兆以太网1/0/46
千兆以太网1/1/3千兆以太网2/0/1千兆以太网2/0/5
千兆以太网2/0/9千兆以太网2/0/14千兆以太网2/0/18
千兆以太网2/0/31千兆以太网2/0/34千兆以太网2/0/36
千兆以太网2/0/40千兆以太网2/1/3千兆以太网3/0/12
千兆以太网3/0/30千兆以太网3/0/32千兆以太网3/0/34
千兆以太网3/0/36千兆以太网3/0/38千兆以太网3/0/40
千兆以太网3/0/42千兆以太网3/0/44千兆以太网3/0/46
千兆以太网3/0/48千兆以太网3/1/2
你能给出的任何解决方案,我都无法在这里再次找到这个脚本的作者,因此可以避免向他询问这个问题。
输入文件如下所示:
{
千兆以太网0/0
千兆以太网1/0/2
千兆以太网1/0/3
千兆以太网1/0/4
千兆以太网1/0/5
千兆以太网1/0/7
千兆以太网1/0/10
千兆以太网1/0/18
千兆以太网1/0/19
千兆以太网1/0/30
千兆以太网1/0/33
千兆以太网1/0/44
千兆以太网1/0/45
千兆以太网1/0/46
千兆以太网1/1/2
千兆以太网1/1/3
千兆以太网1/1/4
千兆以太网2/0/1
千兆以太网2/0/2
千兆以太网2/0/5
千兆以太网2/0/8
千兆以太网2/0/9
千兆以太网2/0/12
千兆以太网2/0/14
千兆以太网2/0/15
千兆以太网2/0/18
千兆以太网2/0/22
千兆以太网2/0/31
千兆以太网2/0/33
千兆以太网2/0/34
千兆以太网2/0/35
千兆以太网2/0/36
千兆以太网2/0/38
千兆以太网2/0/40
千兆以太网2/1/2
千兆以太网2/1/3
千兆以太网2/1/4
千兆以太网3/0/23
千兆以太网3/0/30
千兆以太网3/0/31
千兆以太网3/0/32
千兆以太网3/0/33
千兆以太网3/0/34
千兆以太网3/0/35
千兆以太网3/0/36
千兆以太网3/0/37
千兆以太网3/0/38
千兆以太网3/0/39
千兆以太网3/0/40
千兆以太网3/0/41
千兆以太网3/0/42
千兆以太网3/0/43
千兆以太网3/0/44
千兆以太网3/0/45
千兆以太网3/0/46
千兆以太网3/0/47
千兆以太网3/0/48
千兆以太网3/1/1
千兆以太网3/1/2
千兆以太网3/1/3
千兆以太网3/1/4
}
输出我需要这样的东西:
{
千兆以太网0/0 |千兆以太网1/0/33|
千兆以太网1/0/2 |千兆以太网1/0/44|
千兆以太网1/0/3 |千兆以太网1/0/43|
千兆以太网1/0/4 |千兆以太网1/0/46|
千兆以太网1/0/5 |千兆以太网1/1/2|
千兆以太网1/0/7 |千兆以太网1/1/3|
千兆以太网1/0/10 |千兆以太网1/1/4|
千兆以太网1/0/18 |千兆以太网2/0/1|
千兆以太网1/0/19 |千兆以太网2/0/2|
千兆以太网1/0/30 |千兆以太网2/0/5|
}