2013-02-03 2 views
0

갖는 파일에서 비 구분 열을 추출합니다열 사이에 구분 기호로 구분 된 열 파일

cat file_no_del 
aba14092999140932436 
aba1111478991111484975 
aba1111973668111975690 

하는 방법 (열 사이 구분 기호로) 원본 파일에서 그 라인을 추출? 구분 된 열이있는 새 파일에 저장 하시겠습니까?

cat original_file 
aba1 40929991 40932436 
aba1 100496122 100501188 
aba1 101708714 101709305 
aba1 111478991 111484975 
aba1 111973668 111975690 

cat wanted_output 
aba1 40929991 40932436 
aba1 111478991 111484975 
aba1 111973668 111975690 

나는 이런 식으로 작업을 수행 할 수있을 것으로 생각했다 :

for i in $(sort orginal_file); do awk '{print $1$2$3}' $i | grep -w - file_no_del 

하지만 greping 후 내가 루프에 돌아올 방법을 모르는 AWK &에 문제가 있어요 구분 된 양식으로.
누군가 나를 도와 줄 수 있기를 바랍니다. file_no_del가 충분히 작 으면

+1

는 어떻게 알 수 있습니까? 즉, 첫 행에 8 자리 숫자가 있고 다른 숫자에 9이있는 이유는 무엇입니까? –

+0

숫자는 가변적입니다. – PoGibas

+0

마지막 두 열은 항상 같은 길이입니까? 따라서 첫 번째 열의 첫 번째 네 문자를 가져 와서 나머지 열을 반으로 나눌 수 있습니다. –

답변

2

, 다만 할 각 열이 시작되는

awk 'NR==FNR{ a[$0]++ } NR!=FNR && a[$1 $2 $3]' file_no_del original_file 
+0

작동! 고마워 .. – PoGibas

+0

+1 더 잘 작성된 : awk FNR == NR {a [$ 0] ++; next} $ 1 $ 2 $ 3의 'file_no_del original_file'HTH에 있습니다. – Steve

관련 문제