1
기본적으로 파이프로 구분 된 선이있는 파일이 있으므로 특정 길이 이상으로 갈 때 필드의 내용을 자르고 싶습니다. 따라서 최대 길이를 설정했습니다. 각 필드. 모든 그래서gawk에서 입력 데이터의 형식 맵으로 인덱싱 된 배열 사용
이gawk -F"|" -- '
BEGIN {
map[1]=10
map[2]=20
map[3]=60
map[4]=60
map[5]=3
map[6]=60
map[7]=3
OFS="|"
}
{
for(i = 1; i <= NF; i++) {
if (length($i) > map[$i]) {
$i = substr($i, 1, map[$i])
}
}
print;
}
'
여기서 문제는 뭔가 잘못 배열에 있다는 것입니다, 항목이 모두 반환 null 또는 0 : 나는 최대 각 필드에 대한 길이의 값을 저장하기 위해 배열을 사용하고 있습니다 비교 if (length($i) > map[$i])
이 true를 반환하면 모든 필드가 비어 있습니다. 배열에 문제가 있습니까?
완료되었습니다. 이제 실행하여 볼 수 있습니다 :) thx – JBoy