我想要排队的所有字符,直到第一次出现搜索字符串。
示例:
$ echo "onefootwofoothreefoo" | some_command_for_foo
one
$ echo "123_456_789_" | some_command_for_underscore
123
我一直在用sed和grep尝试各种各样的东西,但无法让它工作。
答案 0 :(得分:2)
echo "onefootwofoothreefoo" | awk -Ffoo '{print $1}'
echo "123_456_789_" | awk -F_ '{print $1}'
仅限bash
f=onefootwofoothreefoo
echo "${f%foo${f#*foo}}"
编辑:正如@JohnB指出的那样,以下也有效:
f=onefootwofoothreefoo
echo "${f%%foo*}"