입력 데이터의 특성:
- 각 줄은 파이프 "|"로 구분된 두 개의 필드로 구성됩니다.
- 첫 번째 필드는 쉼표로 구분된 항목 목록입니다.
- 두 번째 필드는 레이블입니다.
입력하다
100,210,354,462|acct
331,746,50|mis
90,263,47,14|sales
산출
100acct
210acct
354acct
462acct
331mis
746mis
50mis
90sales
263sales
47sales
14sales
답변1
항목에 "|"가 포함되어 있지 않고 태그에 ","가 포함되어 있지 않다고 가정합니다.
awk -F '[,|]' '{for(i=1;i<NF;i++)print$i$NF}' input.txt
답변2
PERL 그럴까요?
$ perl -ne 'chomp; @a=split(/\|/); @b=split(/,/,$a[0]); map{print "$_$a[1]\n"}@b' input.txt
답변3
순수 sed 솔루션:
sed ':a;s/\(.*\),\([^,]*\)|\(.*\)/\2\3\n\1|\3/;ta;s/|//' input.file
답변4
말했다...
sed -e 's/^\([0-9][0-9]*\),.*|\(.*\)/\1\2/'
첫 번째 필드가 숫자가 아닌 경우 다음과 같이 변경할 수 있습니다.
sed -e 's/^\([^,][^,]*\),.*|\(.*\)/\1\2/'