Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 从文件中提取子字符串_Shell_Sed - Fatal编程技术网

Shell 从文件中提取子字符串

Shell 从文件中提取子字符串,shell,sed,Shell,Sed,我有这个档案: export CROSS_COMPILER=gcc-arm export SDK=1 # # blabla bla # if [ `expr $SYSTEM : '.*x86.*'` -ne 0 ] then export X86 fi 我想使用sed提取这个文件的变量。因此,我想显示: CROSS_COMPILER SDK X86 有人能帮我吗?终于找到了答案 grep -Po 'export \K[^=]+' file 对于sed: $ sed -n 's/.

我有这个档案:

export CROSS_COMPILER=gcc-arm
export SDK=1
#
#   blabla bla
#
if [ `expr $SYSTEM : '.*x86.*'` -ne 0 ]
then
   export X86
fi
我想使用sed提取这个文件的变量。因此,我想显示:

CROSS_COMPILER
SDK
X86

有人能帮我吗?

终于找到了答案

grep -Po 'export \K[^=]+' file
对于sed:

$ sed -n 's/.*export \([^=]*\).*/\1/p' infile
CROSS_COMPILER
SDK
X86
  • -n
    防止打印
  • 替换在匹配
    export
    的行上捕获
    export
    和等号之间的所有内容(如果没有等号,则捕获行尾),然后用捕获组替换整行
  • p
    标志打印该行