예를 들어 다음 변수에는 이 값이 포함됩니다.
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