2010-08-23 3 views
3

지난 주에 sed에 대해 읽었습니다. 이제 sed를 사용하여 파일에서 추출을 수행합니다. 괜찮습니다. 이제 첫 번째 열의 데이터를 변경하고 싶습니다. 행 번호에 내가 AWK에서이 작업을 수행 또는 나오지도 할 수있는 방법,sed 또는 awk, 데이터의 첫 번째 열을 업데이트

1 3 3 0 0 0 1 3 35 34 
16 3 3 0 0 0 34 35 33 19 
31 3 3 0 0 0 19 33 71 68 
46 3 3 0 0 0 68 71 72 69 
61 3 3 0 0 0 69 72 73 70 
76 3 3 0 0 0 70 73 67 53 

말과 6-1로 첫 번째 열을 변경? 보다도, 일 Umut

당신이
뭔가를 시도 할 수 있습니다

답변

1

awk 가정 이 시나리오의 경우 sed으로이 작업을 수행 할 수있는 가장 쉬운 방법은 다음과 같습니다. 제 식 제 번호를 삭제하고 상기 판독으로부터 파이프 라인 번호를 인쇄 =

cat file | sed "s/^[0-9]*//g;=;" | sed -n "N;s/\n//g;p" 

.

두 번째 sed 표현식은 한 번에 두 줄을 검색하고 줄 바꿈 \n을 제거합니다. = 명령을 직접 캡처 할 수없는 표준 출력에 줄 번호를 기록하기 때문에

는 두 개의 연속적인 표현을 통해 수행되지 않은 수 있습니다. 그래서 나는 또 다른 sed 전화를 재발해야했다. 나는 참으로 I 라인을 통해 루프가이 라인의 시작이 패션의 첫 번째 열을 업데이트 루프에서이 작업을 수행하려는 경우

0

는 "1 3 3 0 0 0 1 3 35 34"에코 | SED의/^ 1/A/g '당신이 필요로하는 번호에

변경 A와 내가 첫 번째 열은 행의 시작 부분에서 확실히

+0

들은 말한다. awk는 언어에 몇 가지 구문이 있기 때문에 더 좋은 옵션이라고 생각합니다. 이 답변으로 문제가 해결되면, 그것을 받아들이는 고려 : 확실하지만 ... –

+0

및 첫 번째 열은 항상 1 – ghostdog74

6

사용 AWK

awk '$1=NR' file 
+0

감사로 시작되지 않는이 트릭은 설명서를 읽고 계속입니다 ... –

+0

@Umut 아니다 옆에있는 확인란을 클릭하여 (+1 작업은이 작업에 적합한 도구입니다.) – schot

관련 문제