regex - 使用 [ :word:] gives: Invalid character class name 删除单词

标签 regex unix ubuntu sed

我正在运行 sed命令:

sed -e 's/\/[[:word:]]+//g' *.csv

*.csv文件我有类似的东西:
name/name, val1, val2
name2/name2, val3, val4
etc

我要删除name/所以得到name, val1, val2 ……
但我收到此错误:
sed: -e expression #1, char 18: Invalid character class name

我正在使用 Ubuntu 16.04

最佳答案

sed支持POSIX regular expressions . POSIX 根本没有定义字符类 [:word:]等等sed .

您可以使用以下命令:

sed 's~/[[:alnum:]]\{1,\}~~' file

它使用字符类 [:alnum:]匹配字母和数字。 +您使用的量词在 POSIX 正则表达式中不存在。您需要使用 \{1,\}表达一个或多个。

关于regex - 使用 [ :word:] gives: Invalid character class name 删除单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40237366/

相关文章:

页面上的 Python 抓取仍然包含像\r\n\t 这样的字符

javascript - 如何匹配至少一个必须出现的 2 个数字(不同范围)的序列?

php - 如何使用正则表达式拆分文件扩展名

ubuntu - Varnish 503 后端获取失败

javascript - 从 Google 跟踪代码管理器中提取标签

linux - 在 Ubuntu 终端中禁用自动换行

linux - 在 shell 脚本中对文件名的特定部分进行排序

linux - 如何以非常规范式将数字转换为日期

python: theano导入错误 "MKL_THREADING_LAYER=GNU"

ubuntu - 将整数作为参数并打印这些数字的总和,但获取命令未找到错误