2012-04-15 3 views
0

죄송합니다. 내가 검색하는 동안 이것을 놓친 것일 수 있습니다. 나는 5 개 이상의 lakhs 기록 (50 만 기록)까지 다음과 같은 구조AWK를 사용하여 텍스트를 첨부하는 방법

AAAA21346A 
AAAA21346A 
AAAA21346A 
AAAA21346A 
. 
. 
. 

텍스트 파일이 있습니다.

awk을 사용하여 모든 행 앞에^N^1을 연결하고 싶습니다. 어떻게 할 수 있습니까?

업데이트 :

내 출력은 다음과 같이한다 :

AAAA21346A^N^1 
AAAA21346A^N^1 
AAAA21346A^N^1 
AAAA21346A^N^1 

등 EOF까지. 모든 레코드가 끝나면 줄 바꿈이 있어야합니다.

**좀 더 설명* ** * 내가 DB2와 리눅스를 사용하고 따라서 내가 awk는 생각
. 내가 뭘 하려는지, 나는 "로드에서"명령을 사용하여 DB2에서 3 열 및 델타로 ^를 사용하여 테이블에 데이터를 삽입해야합니다. 그러나 텍스트 파일에는 하나의 열만 있기 때문에^N^1을 첨부하여 3 열로 만들고 싶습니다. 나는 yall이 지금 이해하기를 바랍니다.

+1

매우 명확하지 않습니다. 보고 싶은 출력 샘플을 보여줄 수 있습니까? 또한, [무엇을 시도 했습니까?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/)? – Graham

+0

죄송합니다. 내 출력은 "AAAA21346A"^ N^1 "AAAA21346A"^ N^1 "AAAA21346A"^ N^1 "AAAA21346A"^ E^1까지 계속되어야합니다. 줄 바꿈은 매번 1시 이후에도 존재합니다. – koderhash

+0

저는 지금 아무 것도 시도하지 않았습니다. 내가 최근에 수행 한 작업은 Excel의 모든 행을 가져와 필요한 것을 첨부 한 다음^구분 된 파일을 사용하여 CSV를 사용하여 내보내는 것입니다. 이것은 놀랍게도 100 개의 기록을 훌륭하게 작동시키고 있었지만, 며칠 안에 50 개의 lacs까지 증가 할 5 개의 lacs는 없습니다. – koderhash

답변

2

은 당신이 원하는 것은 매우 쉬운 것으로 보인다 : 스레드 ID를 추가하는 유일한 문제는 그렇게하는 알고리즘을 결정한다

awk '{print $0 "^N^1"}' data_file 

. 예를 들어, 교류도 매우 간단합니다 : 더 명시 적으로

awk 'BEGIN { ORS = "^N^1\n"} 1' inputfile 

또는 :

awk 'BEGIN { ORS = "^N^1\n"} {print}' inputfile 

또는

다음
awk '{printf "%s^N^%d\n", $0, (NF % 2) + 1}' data_file 
+0

고맙습니다! – koderhash

1

는 AWK를 사용하여 할 수있는 몇 가지 방법이 더 있습니다
awk 'BEGIN { OFS = "^"} {$2 = "N"; $3 = 1}1' inputfile 

또는

awk 'BEGIN { OFS = "^"} {$2 = "N"; $3 = 1; print}' inputfile 
+0

너무 감사합니다! ... 나는 완전히 awk에 새로운 사람이고 이것은 정말로 나를 도왔다. – koderhash

+0

@koderhash - 가장 도움이 된 답변의 체크 표시를 잊지 마세요! – Graham

관련 문제