无法将特定的正则表达式与 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”。

答案1

问题是我-在 grep 上使用,而文本实际上是其他字符(当我将其粘贴到堆栈溢出时,它会被转换)

在此输入图像描述

答案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

相关内容