Bash
無法將特定的正則表達式與 bash 匹配
我有一個
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 最初顯示的內容。但是,例如,我仍然無法成功 grep “230-44”。
問題是我
-
在 grep 上使用,而文本實際上是其他字元(當我將它粘貼到堆棧溢出時它被轉換)
嘗試使用 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