2014-11-14 5 views
0

값이있는 텍스트 파일이 있고 파일의 특정 행에서 열을 작성하려고합니다.리눅스 행에서 열을 만듭니다.

<name>RELATIVE 1</name> 
0.624790,-0.000000,0 
0.493925,0.591035,0 
0.363039,1.182079,0 
<name>RELATIVE 2</name> 
-24.621334,0.000000,0 
-24.752199,0.591031,0 
-24.883085,1.182072,0 
<name>RELATIVE 3</name> 
-49.868542,0.000000,0 
-49.999397,0.591014,0 
-50.130271,1.182033,0 

및 예상 출력되어야 :

0.624790,-0.000000,0 <name>RELATIVE 1</name> 
0.493925,0.591035,0 <name>RELATIVE 1</name> 
0.363039,1.182079,0 <name>RELATIVE 1</name> 
-24.621334,0.000000,0 <name>RELATIVE 2</name> 
-24.752199,0.591031,0 <name>RELATIVE 2</name> 
-24.883085,1.182072,0 <name>RELATIVE 2</name> 
-49.868542,0.000000,0 <name>RELATIVE 3</name> 
-49.999397,0.591014,0 <name>RELATIVE 3</name> 
-50.130271,1.182033,0 <name>RELATIVE 3</name> 

용액 배시, awk는 또는 Sed의있을 수있는보다 정확하게는, 입력은 다음과 같다.

도움을 미리 감사드립니다.

답변

2

사용 AWK :

awk '/^</{s=$0;next}{print $0,s}' file.txt 

라인이 < 시작하면, 라인의 내용에 변수 s을 설정하고 다음 행으로 건너 뜁니다. 다른 줄에는 줄의 내용을 인쇄하고 그 뒤에 내용은 s입니다.

+1

감사 솔루션 및 설명에 대한 많은 사용하여 현재 라인에 최신 이름 줄을 추가 시도 할 수 있습니다, 그것은처럼 일 매력! – npires

2

당신이 awk

awk '/name/{s=$0}!/name/{print $0,s}' file 
+0

나는 같은 변수 이름을 선택했다고해도 과언이 아닙니다. –

+0

당신의 솔루션도 완벽하게 작동했습니다. 고마워. – npires

0
sed '#n 
/<name>/ {h 
    b 
    } 
G 
s/\n/ /p' YourFile 

이 유지 버퍼를

관련 문제