我正在尝试找到一个'r'后面跟一个辅音并将其删除在文本文件1.txt中。我的代码如下
cat 1.txt | grep s/.*r([^aeiou])/\1/g
我知道grep命令与Cygwin中的正则表达式一起使用,但我无法做到这一点。
答案 0 :(得分:0)
NestedScrollView
只能在输入文件中找到所需的正则表达式模式。如果要通过删除这些事件来编辑文件,最好使用grep
。
如果您的文件名为sed
,请尝试以下操作:
ab
答案 1 :(得分:0)
删除'r'?删除辅音?删除线?请澄清“删除它”。
如果您在文档中某处[^aeiou]
,我建议您将[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]
替换为.*r[A-Z0-9]
。
在这里,我将其拆分为三个查询,您可以使用\ 1 \ 2 \ 3:
将任何文本带回来。 sed 's/\(.*\)\(r\)\([^aeiou]\)/\1\2\3/g' 1.txt
'r':sed 's/\(.*\)\(r\)\([^aeiou]\)/\1\3/g' 1.txt
。* r:sed 's/\(.*\)\(r\)\([^aeiou]\)/\3/g' 1.txt
使用SED删除辅音:sed 's/\(.*\)\(r\)\([^aeiou]\)/\1\2/g' 1.txt
使用SED删除[^ aeiou]:sed 's/\(.*\)\(r\)\([^aeiou]\)/\1/g' 1.txt
行删除
使用sed:sed '/r[^aeiouAEIOU]/d' 1.txt
或以下,如果您有包含数字或符号的行:
sed '/r[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]/d' 1.txt
使用grep删除行: cat 1.txt | grep r[aeiouAEIOU]
或以下,如果您有包含数字或符号的行:
cat 1.txt | grep -v r[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]
答案 2 :(得分:0)
您使用了错误的工具,因为grep(1)
仅过滤输入的输入行,您需要sed(1)
来编辑[rR][bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]
恰好发生的位置。
sed 's/[rR]\([bcdfghijklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]\)/\1/g'
将仅删除第一个r
或R
。如果您需要删除两者,只需执行
sed 's/[rR][bcdfghijklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]//g'