.tab 파일의 특정 필드의 첫 번째 문자를 제외한 모든 문자를 제거하려고합니다. 나는 필드 (10)와문자열의 첫 번째 문자를 특정 단일 필드에 유지
일반적으로 필드 그들에 35 개 문자가 11 만 첫 번째 문자를 유지하려면, 그래서 내가 사용 :
awk '{gsub ("..................................$","",$10;print} file
그러나, 35 미만이 일부 필드가 있으며, 이 replace 함수에 의해 무시되었습니다. 하위 문자열을 사용하는 데 지겹지 만 특정 필드를 지정하는 방법을 알 수 없습니다. 나는 기능
perl -pe 's/(.).*/$1/g'
를 사용할 수 있지만 내가 그렇게하고 입력 값으로 필드를 사용하는 방법을 잘 모르겠습니다 있도록 AWK 내부에 펄을 사용하는 방법이 생각, 그래서 파일을 제외하고 동일 나온다 변경된 필드.
거기에 perl과 동등한 작업을 수행 할 수있는 방법이 있습니까?
도움을 받으실 수 있습니다! awk
를 사용
하나가 멋지게 다. '{print} '는'1 '로 바꿀 수 있지만. :) –
는 매력처럼 일했습니다. 원격으로 a 정의 섹션을 이해 합니다만, akw에 대한 루프에서 어떻게 작동하는지 혼란 스럽습니다. 누구든지 루프를 사용하여 읽기를 제안하고 awk에서 substr을 사용할 수 있습니까? – jeffpkamp
Effective Awk Programming, 제 3 판 아놀드 로빈스. 또는 "C"책을 루프로 읽고 substr()은 awk와 C에서 동일합니다. –