想知道最快的方法是从列表中的某些分隔字段中删除文本。
我的列表如下所示:
text text:number:text:text:text:text:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*
我希望它看起来像这样:
text text:*:*:*:*:text:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*
所以一些有数据的字段需要用星号替换,一些字段需要保持不变,并且分隔符不一致(第一个和第二个字段用空格分隔)。这是在 linux 文件系统上,并且首选在文件上内联的方法。
非常感谢您的帮助!
我会使用与您的文本匹配的正则表达式(括号将文本捕获到由 \1、\2 等指定的缓冲区中):
和一个替换正则表达式:
使用 sed:
根据您的外壳,您可能需要稍微摆弄转义字符。
我可能会在 perl 中这样做:
perl -pi.bak -e 's/^(\w+\s\w+):\d+:\w+:\w+:\w+:(.*)/$1:$2/' 文件名