다음 형식의 파일이 있습니다.
Name=Dan
Age=45
Name=Alex
Age=35
Cellphone=12345678901
Name=John
Age=
Cellphone=12345678901
파일에는 형식으로 된 1000개 이상의 데이터 항목이 있습니다 Name=Value
.
값이 누락된 경우 아래 출력에서 해당 값을 연령에 대한 누락값으로 찾고 싶습니다.
나는 cut 명령을 사용한 cut -d “=“ -f2 > some file
다음 빈 줄을 찾아본 grep -n ‘[[:blank:]]’ file
다음 원본 파일의 줄 번호를 표시해 보았습니다.
하지만 파일이 여러 개 있으므로 이 방법은 복잡해 보입니다.
더 쉬운 방법이 있나요?
답변1
다음을 사용해 볼 수 있습니다.
cat <filename> | sed "s/ /\n/g" | grep "=$"
이렇게 하면 공백이 새 줄로 바뀌고(값에 공백이 포함된 경우 이 방법이 작동하지 않음) = 뒤에 줄 끝이 오는 항목을 찾습니다.
답변2
파일을 다음과 같이 보는 경우분리된, 그러면 두 번째 줄의 모든 줄을 일치시키고 출력할 수 있습니다.대지최대 공간으로 구성될 수 있습니다:
awk -F= '$2 ~ /^[ \t]*$/' file
답변3
확장 정규 표현식과 함께 사용 grep
:
grep -Eno "[A-Za-z]+=( |$)" /path/to/file
빈 키와 해당 줄 번호가 인쇄되어야 합니다.