从 grep 输出中删除单词
Removing word from grep output
我有以下 bash 命令:
cat setup.py | grep name=`
本returns本行
name='SOME_PROJECTNAME',
我如何将 grep 的输出通过管道传输到只检索 SOME_PROJECTNAME
?
我试过了
cat setup.py | grep name= | tr -d 'name=','
但这会删除 SOME_PROJECTNAME
中的字符。
#bad cat setup.py | grep name= | cut -d= -f2-
cat setup.py | grep name= | cut -d' -f2
Sed 在这里可能会有所帮助。
sed -ne "s/name='\(.*\)'//p" setup.py
选项 -n
使 sed not 默认打印行。然后我们将整个 属性 行 (name='SOME_PROJECTNAME'
) 替换为仅值 (SOME_PROJECTNAME
)。 s///
命令中的 p
标志使 sed 打印行 仅当替换被执行时 。因此,唯一要打印的行是已完成替换的行,以及替换后的值。
使用grep
lookahead.
$ grep -oP "(?<=name=').*(?=')" setup.py
我有以下 bash 命令:
cat setup.py | grep name=`
本returns本行
name='SOME_PROJECTNAME',
我如何将 grep 的输出通过管道传输到只检索 SOME_PROJECTNAME
?
我试过了
cat setup.py | grep name= | tr -d 'name=','
但这会删除 SOME_PROJECTNAME
中的字符。
#bad cat setup.py | grep name= | cut -d= -f2-
cat setup.py | grep name= | cut -d' -f2
Sed 在这里可能会有所帮助。
sed -ne "s/name='\(.*\)'//p" setup.py
选项 -n
使 sed not 默认打印行。然后我们将整个 属性 行 (name='SOME_PROJECTNAME'
) 替换为仅值 (SOME_PROJECTNAME
)。 s///
命令中的 p
标志使 sed 打印行 仅当替换被执行时 。因此,唯一要打印的行是已完成替换的行,以及替换后的值。
使用grep
lookahead.
$ grep -oP "(?<=name=').*(?=')" setup.py