"item,item,...|tag" 목록에서 "item tag" 쌍 생성 [닫기]

"item,item,...|tag" 목록에서 "item tag" 쌍 생성 [닫기]

입력 데이터의 특성:

  • 각 줄은 파이프 "|"로 구분된 두 개의 필드로 구성됩니다.
  • 첫 번째 필드는 쉼표로 구분된 항목 목록입니다.
  • 두 번째 필드는 레이블입니다.

입력하다

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/'

관련 정보