2011-10-10 3 views
2

나는 다음과 같은 텍스트 파일이 있습니다* nix 환경에서 어떻게 열을 그룹화합니까?

A,B,C 
A,B,C 
A,B,C 

방법은 텍스트 파일을 처리하고 다음과 같은 출력을 얻기 위해 표준 * nix에서 스크립트 도구 (잘라 내기, 그렙, AWK, 나오지도 등)를 사용하여, 거기를 :

A 
A 
A 
B 
B 
B 
C 
C 
C 
+0

나는'rs (1)'만으로이 작업을 수행 할 수있을 것이라고 생각하지만 컴퓨터에서 예상대로 작동하지는 않습니다. – jwodder

답변

5

당신은 할 수 있습니다 :

tr , \\n 

및 그 생성

A 
B 
C 
A 
B 
C 
A 
B 
C 

당신이 정렬 할 수 있습니다. 당신이이 경우에 당신은 같은 것을 원하는, 셋째 다음 초 후 첫 번째 열을 끌어 싶어하지 않는

:

awk -F, '{for(i=1;i<=NF;++i) print i, $i}' | sort -sk1 | awk '{print $2}' 

이 설명 할을, 첫 번째 부분은

1 A 
2 B 
3 C 
1 A 
2 B 
3 C 
1 A 
2 B 
3 C  

두 번째 부분을 생성 안정적으로 정렬됩니다 (내부 순서가 유지되도록)

1 A 
1 A 
1 A 
2 B 
2 B 
2 B 
3 C 
3 C 
3 C  

및 제 3 부분 숫자를

0

시도를 제거합니다 : 당신이 고급의 열 수를 알고있는 경우

awk 'BEGIN {FS=","} /([A-C],)+([A-C])?/ {for (i=1;i<=NF;i++) print $i}' YOURFILE | sort 
3

는 당신을위한 루프 컷과 함께 쉘을 사용할 수 있습니다. 다음은 bash 구문을 사용한 예제입니다 :

for i in {1..3}; do 
    cut -d, -f $i file.txt 
done 
관련 문제