Unix에서 파일 n의 쉼표로 구분된 특수 값을 사용하여 레코드를 삭제하는 방법
내 데이터
100,india,*,*,P,45000,location
200,india,*,*,*,45000,location
300,india,*,*,P,45000,location
400,india,*,*,*,45000,location
P가 5번째 위치에 관계없이 이 기록을 삭제하고 싶습니다. 원하는 출력
200,india,*,*,*,45000,location
400,india,*,*,*,45000,location
답변1
다음과 같이 시도해 보세요.
awk -F, '{if ($5 != "P") { print $0 }}' /path/to/input-file
답변2
/linux 태그를 사용하므로 GNU가 있어야 합니다 sed
.
sed -i -E '/^([^,]*,){4}P/d' data.txt
-i
그 자리에서 파일 편집-E
가독성을 높이기 위해 확장 정규식을 사용하세요.[^,]*
쉼표 없이 시퀀스와 일치하므로^([^,]*,){4}
처음 4개 필드 일치- 뒤에 a가 오면 해당 줄을 삭제하십시오
P
.d