문자열의 쉼표를 숫자로 바꾸기

문자열의 쉼표를 숫자로 바꾸기

내 텍스트 파일에는 다음과 같은 문자열이 포함되어 있습니다.

abc,def,ghi,jkl,mno,pqr,stu,wxyz

이렇게 만들고 싶어요

1.abc
2.def
3.ghi
4.jkl
5.mno
6.pqr
7.stu
8.wxyz

sed를 사용하여 이 작업을 어떻게 수행할 수 있나요?

답변1

당신은 이것을 할 수 있습니다

echo abc,def,ghi,jkl,mno,pqr,stu,wxyz  | sed 's/,/\n/g' | nl -s "."

     1.abc
     2.def
     3.ghi
     4.jkl
     5.mno
     6.pqr
     7.stu
     8.wxyz

답변2

GNU를 사용할 수 있습니다 awk.

awk -v RS=',|\n' '{printf "%s.%s\n",NR,$0}' <<< "abc,def,ghi,jkl,mno,pqr,stu,wxyz"

답변3

여러 Perl 메소드:

$ perl -F, -lne 'print ++$k.".$_" for @F' file
1.abc
2.def
3.ghi
4.jkl
5.mno
6.pqr
7.stu
8.wxyz

$ perl -pne 'chomp;s/([^,]+),*/++$k.".$1\n"/ge' file
1.abc
2.def
3.ghi
4.jkl
5.mno
6.pqr
7.stu
8.wxyz

그리고 awk:

$ awk -F, '{for(i=1;i<=NF;i++){print i"."$i}}' file
1.abc
2.def
3.ghi
4.jkl
5.mno
6.pqr
7.stu
8.wxyz

답변4

$ <file sed 's/,/\n/g' | sed '=' | paste -d . - -

1.abc
2.def
3.ghi
4.jkl
5.mno
6.pqr
7.stu
8.wxyz

관련 정보