문제
AWK의 필드를 결합하기 쉬운 곳이 있습니까? 구체적으로, 나는 다음과 같은 줄이 있습니다.
1,2,some text
3,4,some text, but it has commas in it, annoyingly
두 숫자를 처음 두 필드로 추출하고 싶지만 모든 텍스트 (쉼표와 모두)가 세 번째 필드가되기를 원합니다. 그렇게 할 방법이 있습니까?
내 기본적인 awk 호출은 다음과 같습니다.
awk -F\, '{print $1"|"$2"|"$3}' file.txt
첫 번째 줄에는 잘 작동하지만 두 번째 줄의 텍스트에서 쉼표에서 멈 춥니 다.
해결책
아마도:
awk '{for (i=0;i<2;i++) sub(",", "|", $0); print}' file.txt
다른 팁
당신은 sed를 사용하여 그것을 할 수 있습니다.
cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
제휴하지 않습니다 StackOverflow