Grep 同时排除特殊字母,如变音符号
Grep while excluding special letters like umlauts
我是 运行 Mint Xfce 并尝试使用以下命令从终端进行 grep:
grep -E -o '^[A-Za-z]{1,}\s[A-Za-z]{1,}\s[0-9]{1,}' sourcefile.txt | sort -f > newfile.txt
源文件是一个文本文件,每行看起来像
<string><space><string><tab><number><tab><number><tab>...
其中字符串包含字母、数字、标点符号和特殊字符,数字是整数。
我的目标是提取 的两个字符串和第一个数字,仅提取字符串仅包含英文字母的行(a-z,大写或小写)。
上述命令省略了带有标点符号和数字的字符串,但字符串中包含特殊字母(如 u 变音符号 (Ü))的行会以某种方式通过并发送到 newfile.txt。我觉得我遗漏了一些明显的东西,但是大量的谷歌搜索只会让我回想起关于如何 grep 查找特殊字母的讨论。我已经在 https://regex101.com/ 测试了正则表达式,但变音符号没有匹配,这让我觉得问题不在我的正则表达式上。
感谢您提供的任何帮助!
您必须临时更改语言环境。
尝试:
LC_ALL="C" grep -E -o '^[A-Za-z]{1,}\s[A-Za-z]{1,}\s[0-9]{1,}' sourcefile.txt | sort -f > newfile.txt
它在 Ubuntu 对我有用。
要切换回您的语言环境,只需关闭控制台 window.
我是 运行 Mint Xfce 并尝试使用以下命令从终端进行 grep:
grep -E -o '^[A-Za-z]{1,}\s[A-Za-z]{1,}\s[0-9]{1,}' sourcefile.txt | sort -f > newfile.txt
源文件是一个文本文件,每行看起来像
<string><space><string><tab><number><tab><number><tab>...
其中字符串包含字母、数字、标点符号和特殊字符,数字是整数。
我的目标是提取 的两个字符串和第一个数字,仅提取字符串仅包含英文字母的行(a-z,大写或小写)。
上述命令省略了带有标点符号和数字的字符串,但字符串中包含特殊字母(如 u 变音符号 (Ü))的行会以某种方式通过并发送到 newfile.txt。我觉得我遗漏了一些明显的东西,但是大量的谷歌搜索只会让我回想起关于如何 grep 查找特殊字母的讨论。我已经在 https://regex101.com/ 测试了正则表达式,但变音符号没有匹配,这让我觉得问题不在我的正则表达式上。
感谢您提供的任何帮助!
您必须临时更改语言环境。 尝试:
LC_ALL="C" grep -E -o '^[A-Za-z]{1,}\s[A-Za-z]{1,}\s[0-9]{1,}' sourcefile.txt | sort -f > newfile.txt
它在 Ubuntu 对我有用。 要切换回您的语言环境,只需关闭控制台 window.