【发布时间】:2019-06-20 22:48:06
【问题描述】:
...对于除第一个单词之外的行中每个单词的第一个字母以外的所有字符。所有文本均为英文。
想使用 sed 来转换输入:
Mary had a little lamb
It's fleece was white as snow
到这里:
Mary h__ a l_____ l___
It's f_____ w__ w____ a_ s___
对于一个关注线索回忆的项目。
看了几篇关于 sed 和 regex 的介绍。将在 MacOS 10.14.5 附带的终端上使用 sed 的风格。
【问题讨论】:
-
如果你可以使用 perl 你可以使用
$str =~ s/^\S+\h+(*SKIP)(*FAIL)|(?!\b\S)\S/_/g; -
sed -e ':a' -e 's/\([[:alpha:]]_*\)[[:alpha:]]/\1_/' -e 'ta' file > outfile,但还不是那么回事。 -
单独使用 sed 将很难做到这一点,因为您真正需要的是积极的后视,这在 sed 中不受支持,即使使用 -E 开关也是如此。