以下变量包括例如此值
echo $SERVERS
server1,server2,server3,server4,server5
当我想在不同的线路上对它们进行管道传输时,我会执行以下操作
echo $SERVERS | tr ',' '\n'
server1
server2
server3
server4
server5
现在我想添加另一个管道( echo $SERVERS | tr ',' '\n' | ..... )
,以便打印以下预期结果
1 ……………… server1
2 ………………… server2
3 ………………… server3
4 ………………… server4
5 ………………… server5
6 ……………… server6
7 ………………… server7
8 ………………… server8
9 ………………… server9
10 ………………… server10
11 ………………… server11
12 ………………… server12
不知道该怎么做,但也许使用nc
类似的命令 os
有什么建议吗?
答案1
使用 awk:
$ servers='server1,server2,server3,server4,server5'
$ awk -v RS=, '{print NR "........" $0}' <<<"$servers"
1........server1
2........server2
3........server3
4........server4
5........server5
或者,输出带有左填充的行号
awk -v RS=, '{printf "%3d........%s\n",NR,$0}' <<<"$servers"
3
(根据服务器列表的大小选择适当的字段宽度)。
答案2
cat -n <<< ${SERVERS//,/$'\n'}
1 server1
2 server2
3 server3
4 server4
5 server5
答案3
$ awk -F',' '{for (i=1; i<=NF; i++) printf "%-2d ........ %s\n", i, $i}' <<<"$servers"
1 ........ server1
2 ........ server2
3 ........ server3
4 ........ server4
5 ........ server5