有没有一种方法可以转换成这样的东西:
MyDirectoryFileLine至
my-directory-file-line我找到了一些方法来将所有字母转换为大写或小写,但不是以这种方式;有什么想法吗?
发布于 2011-12-14 18:43:02
您可以使用s/\([A-Z]\)/-\L\1/g查找大写字母,并将其替换为短划线,但它是小写字母。但是,这会在行首给出一个破折号,因此需要另一个sed表达式来处理它。
这应该是可行的:
sed --expression 's/\([A-Z]\)/-\L\1/g' \
--expression 's/^-//' \
<<< "MyDirectoryFileLine"发布于 2011-12-14 18:38:34
我建议使用sed来做到这一点:
NEW=$(echo MyDirectoryFileLine \
| sed 's/\(.\)\([A-Z]\)/\1-\2/g' \
| tr '[:upper:]' '[:lower:]')更新我忘记转换成小写,更新了代码
发布于 2011-12-14 18:39:25
echo MyDirectoryFileLine | perl -ne 'print lc(join("-", split(/(?=[A-Z])/)))'打印my-directory-file-line
https://stackoverflow.com/questions/8502977
复制相似问题