txt
다음 내용이 포함된 파일이 있습니다 .
Adedunmola Okikiola Adewole 512.035
215−39 ^M
Ademir Cleto de Oliveira 055.735
445−13 ^M
Adilson Wagner Gandu 559.995
780−28 ^M
스크립트를 실행할 때,
#!/usr/bin/bash
file="$@"
while IFS= read -r cmd; do
printf '%s\n' "$cmd"
done < "$file"
./readline.sh list.txt
내가 얻는 출력은 다음 형식입니다.
Yves Levi Paixao Lapa 022.485 165"24
Yvin Miguel Juanico Carvalho 623.200 765"20
Yzis Silva Lima Santos 372.341 215"39
Zilmara de Nazare Lucas Pimentel 282.147 230"44
그러나 grep에서 다음 패턴을 사용할 수는 없습니다.
./readline.sh list.txt | grep "230\"44"
수업에 대한 코드입니다. 이 예제 출력에서는 최소한 다음 줄이 제공되어야 한다고 예상했습니다.
Zilmara de Nazare Lucas Pimentel 282.147 230"44
내가 뭘 잘못했나요?
txt 파일 링크: https://drive.google.com/file/d/1azr_GSB2rBHd9dPzx43vrRdqkxkWb60G/view?usp=sharing
편집 2:
utf-8
출력이 vim 또는 emacs가 원래 표시하는 것과 동일하도록 파일 인코딩을 변경하십시오 . 그러나 예를 들어 "230-44"를 성공적으로 grep할 수는 없습니다.
답변1
답변2
grep과 sed를 사용해 보니 훌륭하게 작동합니다.
./readline.sh list.txt |grep '230\"44'
output: Zilmara de Nazare Lucas Pimentel 282.147 230"44
./readline.sh list.txt |sed -n '/230\"44/p'
output: Zilmara de Nazare Lucas Pimentel 282.147 230"44