shell中怎么用一个字符串分隔两外一个字符串

作者

在linux bash 中通常遇到的问题是,使用特定的字符分隔两位一个字符串。通常使用 cut 。有时候需要用一个字符串去分隔两外一个字符串。这个时候 cut 就好用了,可以用。 awk 来实现这个分隔。

示例awk使用 两个等号作为分隔符


echo "aaa==bbb==cc" | awk -F "==" '{ printf $1 "\n" }' aaa echo "aaa==bbb==cc" | awk -F "==" '{ printf $1 $3 $2 "\n" }' aaaccbbb

使用 cut

echo "aaa==bbb==cc" | cut -d'=' -f1
aaa

echo "aaa==bbb==cc" | cut -d'=' -f2

echo "aaa==bbb==cc" | cut -d'=' -f3
bbb

可以看到结果2是空的。

cut不能使用字符串作为分隔符号

echo "aaa==bbb==cc" | cut -d'==' -f3
cut: the delimiter must be a single character
Try 'cut --help' for more information.