我可以使用<
或>
或|
。也许我需要使用 grep?
答案1
您可以使用tr命令转换字符。
% echo "foo.foo.foo" | tr '.' ' '
foo foo foo
答案2
使用纯 bash:
bash-3.2$ a='a.a.a'
bash-3.2$ echo "${a/./ }"
a a.a
bash-3.2$ echo "${a//./ }"
a a a
答案3
您可以创建一个函数并将其添加到您的末尾~/.bashrc
,例如:
nodot() { echo "$1" | sed 's/\./ /g' ; }
使用示例:
$ nodot foo.foo.foo
foo foo foo
您也可以在 zsh 中使用此功能,只需添加到您的~/.zshrc
即可。
答案4
有谁错过了awk
/ perl
/ python
/ go
:
% awk '{gsub(/[.]/, " ", $0); print}' <<<'foo.foo.foo'
foo foo foo
% perl -pe 's/\./ /g' <<<'foo.foo.foo'
foo foo foo
% python -c 'import sys; print sys.stdin.read().replace(".", " ")' <<<'foo.foo.foo'
foo foo foo
% cat input.go
package main
import (
"os"
"strings"
"fmt"
)
func main () {
args := os.Args
if len(args) != 2 {
fmt.Println("Not enough arguments")
return
}
out := strings.Replace(args[1], ".", " ", -1)
fmt.Println(out)
}
% go run input.go 'foo.foo.foo'
foo foo foo