pra*_*ddy 4 command-line text-processing
我需要编写一个 shell 脚本来将文件中的字符转换为小写并将非字母字符替换为_
.
我对上述两个命令都有单独的命令。如何将文件作为参数并完成上述操作,即输出将只有小写字符,而非 alpha 将替换为_
(下划线)?
使用sed
:
sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
Run Code Online (Sandbox Code Playgroud)
这实际上是两个sed
由 分隔的命令;
:
s/[^[:alpha:]]/_/g
将每个非字母字符转换为 _
s/[[:upper:]]/\L&/g
将所有大写字符转换为小写
例子:
$ cat file.txt
fooBAr132323
SpamEgg
$ sed 's/[^[:alpha:]]/_/g; s/[[:upper:]]/\L&/g' file.txt
foobar______
spamegg
Run Code Online (Sandbox Code Playgroud)