我有以下两行。我只希望使用单个命令的行中有.script&之后的部分。
输入行
hello/world/command_altr.program_for_input.script
hello/world/script/deleted_the_input.program_for_output.script
/com/bash/hastag/welcome/program -u util/basic/level/learning
预期输出:
command_altr.program_for_input.script
deleted_the_input.program_for_output.script
答案 0 :(得分:0)
如果我正确理解了您的问题,可以使用sed来解决。
sed -n -r -e 's/^.*\/([^/]+\.script).*$/\1/p'
它将提取给定的图案并进行打印。没有样式的行将被丢弃。
^.*\/
搜索从行首开始的字符串,该字符串包含任何字符并以/
([^/]+\.script)
搜索一个或多个字符的重复字符(/除外),后跟一个点和字符串“ script”。如果找到,则通过(....)
.*$
搜索直到end_of_line的任意数量的字符
/\1/
用记住的模式替换行。
如果找到了图案,则打印'p'。