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