备注:soultion只能与sed或awk一起使用
我有下面一行:(文件中的示例)

     jn34r 38&Y EY$@H #EY$@HDCmhf453gf=,e73e3bnd2wbyzd fr fr4fn3r f 4df 3

在下面的示例中,我们看到:
在“=”分隔符之前,我们有
  jn34r 38&Y EY$@H #EY$@HDCmhf453gf

在“=”分隔符后面有
,e73e3bnd2wbyzd fr fr4fn3r f 4df 3

所以现在我想用sed将分隔符前的单词和分隔符后的单词分开(我写了一个sed语法-但是这个sed命令给出了部分解决方案,
例子:
        echo "jn34r 38&Y EY$@H #EY$@HDCmhf453gf=,e73e3bnd2wbyzd fr fr4fn3r f 4df 3" | sed "s .*\(=\) \1 "  | sed s'/=//g'

我得到以下结果
,e73e3bnd2wbyzd fr fr4fn3r f 4df 3

众所周知,sed在定界符后面加上单词
我想得到的是分隔符之前和之后的单词
请告知我需要什么样的sed语法才能得到分隔符前后的单词,
解决方案应该是这样的
 words_before=jn34r 38&Y EY$@H #EY$@HDCmhf453gf
 words_after=,e73e3bnd2wbyzd fr fr4fn3r f 4df 3

最佳答案

在awk中,可以使用-F选项设置分隔符:

echo "jn34r 38&Y EY$@H #EY$@HDCmhf453gf=,e73e3bnd2wbyzd fr fr4fn3r f 4df 3" | awk -F= '{print "words_before="$1"\nwords_after="$2}'

10-08 02:09