Я получил следующий скрипт от переполнение стека:
#!/bin/sh
in_file=temp2.txt # Input file
params=6 # Parameters count
res_file=$(mktemp) # Temporary file
sep=' ' # Separator character
# Print header
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
# Parse and print values
cnt=0
for i in $(cat $in_file); do
# Print values, skip param names
if [ $((cnt % 2)) -eq 1 ]; then
echo -n $i >>$res_file
fi
if [ $(((cnt+1) % (params*2))) -eq 0 ]; then
# Values line is finished, print newline
echo >>$res_file
elif [ $((cnt % 2)) -eq 1 ]; then
# More values expected to be printed on this line
echo -n "$sep" >>$res_file
fi
cnt=$((cnt+1))
done
# Make nice table format
cat $res_file | column -t
#rm -f $res_file
Но тогда у меня около 100+ строк, и я получаю сообщение об ошибке ** "столбец: слишком длинная строка" **, как показано ниже:
****column: line too long**** GigabitEthernet0/0 GigabitEthernet1/0/3 GigabitEthernet1/0/5 GigabitEthernet1/0/10 GigabitEthernet1/0/19 GigabitEthernet1/0/33 GigabitEthernet1/0/2
GigabitEthernet1/0/4 GigabitEthernet1/0/7 GigabitEthernet1/0/18 GigabitEthernet1/0/30 GigabitEthernet1/0/44 GigabitEthernet1/0/46 GigabitEthernet1/1/3 GigabitEthernet2/0/1 GigabitEthernet2/0/5
GigabitEthernet2/0/9 GigabitEthernet2/0/14 GigabitEthernet2/0/18 GigabitEthernet2/0/31 GigabitEthernet2/0/34 GigabitEthernet2/0/36 GigabitEthernet2/0/40 GigabitEthernet2/1/3 GigabitEthernet3/0/12 GigabitEthernet3/0/30 GigabitEthernet3/0/32 GigabitEthernet3/0/34 GigabitEthernet3/0/36 GigabitEthernet3/0/38 GigabitEthernet3/0/40 GigabitEthernet3/0/42 GigabitEthernet3/0/44 GigabitEthernet3/0/46 GigabitEthernet3/0/48 GigabitEthernet3/1/2
Любые решения, которые вы можете дать, я не смог снова найти здесь автора этого сценария, чтобы спросить его об этом, можно избежать.
Входной файл будет примерно таким:
{ GigabitEthernet0 / 0 GigabitEthernet1 / 0/2 GigabitEthernet1 / 0/3 GigabitEthernet1 / 0/4 GigabitEthernet1 / 0/5 GigabitEthernet1 / 0/7 GigabitEthernet1 / 0/10 GigabitEthernet1 / 0/18 GigabitEthernet1 / 0/19 GigabitEthernet1 / 0/30 GigabitEthernet1 / 0/33 GigabitEthernet1 / 0/44 GigabitEthernet1 / 0/45 GigabitEthernet1 / 0/46 Гигабитный Ethernet1 / 1/2 Гигабитный Ethernet1 / 1/3 GigabitEthernet1 / 1/4 GigabitEthernet2 / 0/1 GigabitEthernet2 / 0/2 GigabitEthernet2 / 0/5 GigabitEthernet2 / 0/8 GigabitEthernet2 / 0/9 GigabitEthernet2 / 0/12 GigabitEthernet2 / 0/14 GigabitEthernet2 / 0/15 GigabitEthernet2 / 0/18 GigabitEthernet2 / 0/22 GigabitEthernet2 / 0/31 GigabitEthernet2 / 0/33 GigabitEthernet2 / 0/34 GigabitEthernet2 / 0/35 GigabitEthernet2 / 0/36 GigabitEthernet2 / 0/38 GigabitEthernet2 / 0/40 GigabitEthernet2 / 1/2 GigabitEthernet2 / 1/3 GigabitEthernet2 / 1/4 GigabitEthernet3 / 0/12 GigabitEthernet3 / 0/23 GigabitEthernet3 / 0/30 GigabitEthernet3 / 0/31 GigabitEthernet3 / 0/32 GigabitEthernet3 / 0/33 GigabitEthernet3 / 0/34 GigabitEthernet3 / 0/35 GigabitEthernet3 / 0/36 GigabitEthernet3 / 0/37 GigabitEthernet3 / 0/38 GigabitEthernet3 / 0/39 GigabitEthernet3 / 0/40 GigabitEthernet3 / 0/41 GigabitEthernet3 / 0/42 GigabitEthernet3 / 0/43 GigabitEthernet3 / 0/44 GigabitEthernet3 / 0/45 GigabitEthernet3 / 0/46 GigabitEthernet3 / 0/47 GigabitEthernet3 / 0/48 Гигабитный Ethernet3 / 1/1 Гигабитный Ethernet3 / 1/2 Гигабитный Ethernet3 / 1/3 Гигабитный Ethernet3 / 1/4 }
Вывод мне нужен примерно такой:
{ GigabitEthernet0 / 0 | GigabitEthernet1 / 0/33 | GigabitEthernet1 / 0/2 | GigabitEthernet1 / 0/44 | GigabitEthernet1 / 0/3 | GigabitEthernet1 / 0/43 | GigabitEthernet1 / 0/4 | GigabitEthernet1 / 0/46 | GigabitEthernet1 / 0/5 | GigabitEthernet1 / 1/2 | GigabitEthernet1 / 0/7 | GigabitEthernet1 / 1/3 | GigabitEthernet1 / 0/10 | GigabitEthernet1 / 1/4 | GigabitEthernet1 / 0/18 | GigabitEthernet2 / 0/1 | GigabitEthernet1 / 0/19 | GigabitEthernet2 / 0/2 | GigabitEthernet1 / 0/30 | GigabitEthernet2 / 0/5 | }
Это сценарий ужасающий.
Возможно, мне придется согласиться с трипли по этому поводу. Конечно с оливком. Пожалуйста, покажите примеры желаемого входа и выхода. Я почти уверен, что мы можем добиться большего успеха, чем это. :)





Я решил эту проблему с помощью команды столбца.
он просто публикует вывод примерно так
column vacant_temp4.txt
GigabitEthernet1/0/1 GigabitEthernet1/0/48 GigabitEthernet2/0/34 GigabitEthernet3/0/44 GigabitEthernet4/0/28
GigabitEthernet1/0/2 GigabitEthernet1/1/2 GigabitEthernet2/0/35 GigabitEthernet3/1/1 GigabitEthernet4/0/29
GigabitEthernet1/0/3 GigabitEthernet1/1/3 GigabitEthernet2/0/36 GigabitEthernet3/1/2 GigabitEthernet4/0/30
GigabitEthernet1/0/5 GigabitEthernet1/1/4 GigabitEthernet2/0/38 GigabitEthernet3/1/3 GigabitEthernet4/0/31
GigabitEthernet1/0/7 GigabitEthernet2/0/1 GigabitEthernet2/0/45 GigabitEthernet3/1/4 GigabitEthernet4/0/32
GigabitEthernet1/0/8 GigabitEthernet2/0/5 GigabitEthernet2/1/2 GigabitEthernet4/0/1 GigabitEthernet4/0/33
GigabitEthernet1/0/9 GigabitEthernet2/0/8 GigabitEthernet2/1/3 GigabitEthernet4/0/5 GigabitEthernet4/0/34
GigabitEthernet1/0/14 GigabitEthernet2/0/9 GigabitEthernet2/1/4 GigabitEthernet4/0/6 GigabitEthernet4/0/35
GigabitEthernet1/0/16 GigabitEthernet2/0/10 GigabitEthernet3/0/2 GigabitEthernet4/0/9 GigabitEthernet4/0/36
GigabitEthernet1/0/19 GigabitEthernet2/0/13 GigabitEthernet3/0/5 GigabitEthernet4/0/12 GigabitEthernet4/0/37
GigabitEthernet1/0/20 GigabitEthernet2/0/14 GigabitEthernet3/0/7 GigabitEthernet4/0/13 GigabitEthernet4/0/38
GigabitEthernet1/0/26 GigabitEthernet2/0/16 GigabitEthernet3/0/13 GigabitEthernet4/0/16 GigabitEthernet4/0/39
GigabitEthernet1/0/27 GigabitEthernet2/0/20 GigabitEthernet3/0/16 GigabitEthernet4/0/17 GigabitEthernet4/0/40
GigabitEthernet1/0/28 GigabitEthernet2/0/21 GigabitEthernet3/0/19 GigabitEthernet4/0/18 GigabitEthernet4/0/41
GigabitEthernet1/0/30 GigabitEthernet2/0/25 GigabitEthernet3/0/22 GigabitEthernet4/0/19 GigabitEthernet4/0/42
GigabitEthernet1/0/31 GigabitEthernet2/0/26 GigabitEthernet3/0/25 GigabitEthernet4/0/20 GigabitEthernet4/1/1
GigabitEthernet1/0/35 GigabitEthernet2/0/27 GigabitEthernet3/0/26 GigabitEthernet4/0/21 GigabitEthernet4/1/2
GigabitEthernet1/0/36 GigabitEthernet2/0/28 GigabitEthernet3/0/27 GigabitEthernet4/0/22 GigabitEthernet4/1/3
GigabitEthernet1/0/37 GigabitEthernet2/0/29 GigabitEthernet3/0/37 GigabitEthernet4/0/23 GigabitEthernet4/1/4
GigabitEthernet1/0/40 GigabitEthernet2/0/30 GigabitEthernet3/0/39 GigabitEthernet4/0/24
GigabitEthernet1/0/45 GigabitEthernet2/0/31 GigabitEthernet3/0/41 GigabitEthernet4/0/26
GigabitEthernet1/0/46 GigabitEthernet2/0/32 GigabitEthernet3/0/42 GigabitEthernet4/0/27
Это выглядело лучше, чем то, что вы видели выше на моем экране замазки.
Спасибо, Оли, Трипли, Пол и все.
Обновите свой вопрос, указав входной файл и ожидаемый результат.