备注: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}'