如何删除bash中字符后面的所有文本,在本例中是冒号(":")?我能把冒号也去掉吗?我不知道该怎么做。
发布于 2010-11-13 03:41:29
一个例子可能会很有用,但如果我没理解错的话,这是可行的:
echo "Hello: world" | cut -f1 -d":"
这会将Hello: world
转换为Hello
。
发布于 2010-11-13 09:24:36
在Bash (以及ksh、zsh、dash等)中,您可以对%
或#
使用参数扩展,前者将删除字符串末尾的字符,后者将删除字符串开头的字符。如果您使用这些字符中的单个字符,则将删除最小的匹配字符串。如果将字符加倍,则最长的字符将被删除。
$ a='hello:world'
$ b=${a%:*}
$ echo "$b"
hello
$ a='hello:world:of:tomorrow'
$ echo "${a%:*}"
hello:world:of
$ echo "${a%%:*}"
hello
$ echo "${a#*:}"
world:of:tomorrow
$ echo "${a##*:}"
tomorrow
发布于 2014-07-03 22:00:46
$ echo 'hello:world:again' |sed 's/:.*//'
hello
https://stackoverflow.com/questions/4168371
复制相似问题