31 주어진 : 레코드에 40 개의 열이 있습니다. 35 번째 열이 35 번째 열의 내용과 "$"기호로 바뀌도록 35 번째 열을 바꾸고 싶습니다. 생각 나는 것은 다음과 같습니다. awk '{print $1" "$2" "...$35"$ "$36...$40}' 작동하지만 열 수가 10k 이상이면 실행할 수 없기 때문에 작동합니다. 이 작업을 수행하는 더 좋은 방법이 필요합니다. linux text-processing awk replace — 마커스 손튼 소스
3 필드 구분자가 <space>다음과 같은 경우 : sed 's/ */$&/35' — mikeserv 소스 필드 구분 기호는 알 수없는 경우 :sed 's/./$&/35' — 언더 벌스 @ Underverse-나는 그것이 같은 것이라고 생각하지 않습니다. 그것은 입력 줄에서 35 번째 문자 앞에 문자가 있어야합니다 $. 위의 것은 $각 필드에 문자가 어떻게 있든 상관없이 35 번째 필드에 35 문자를 포함해야합니다 (즉, 35 번째 필드). — mikeserv 아, "레코드에 40 개의 열". 나는 문자 그대로 '텍스트 파일의 35 번째 문자 열'로 '35 번째 열 '을 읽습니다. — Under
3 원래 Field-Seprator를 예약하기 위해이 작업을 수행했습니다. 비우고 싶은 열은 12 달러였습니다. awk -F"\t" '{OFS=FS}{ $12="" ; print }' infile.txt > outfile.txt 을 사용 gawk -i하면 파일을 편집 할 수 있습니다. — zee 소스
1 "승인 된"답변을 사용하는 데 문제가 있으면 파일의 첫 번째 열 이상을 대체하게됩니다. 이 일반 명령을 사용합니다. awk '$[column]="[replace]"' FS=, OFS=, inputfile > outputfile 어디에: [column] = 1부터 시작하여 변경하려는 열 (0 아님) [replace] = 바꾸려는 텍스트 — 제이슨 G 소스 awk '$1=mktime($1)' FS=, OFS=, oldfile > newfile ... 몇 초 안에 백만 개의 타임 스탬프를 교체했습니다 !! :) — roblogic
sed 's/./$&/35'