我在文件中有提示历史记录:
[user@host path]# echo $first
14556
....
[user@host path]# echo $second
65541
....
[user@host path]# echo $first
12345
[user@host path]# command
unknow number of rows
[user@host path]# echo $second
54321
[user@host path]#
$first
和$second
是随机值,文件中有许多值。如何从文件末尾的echo $first
和echo $second
输出之间获取文本?即
[user@host path]# command
unknow number of rows
[user@host path]# echo $second
似乎我可以使用
sed -n '/WORD1/,/WORD2/p' file
但我不知道如何写$ first和$ second而不是WORD1和WORD2
然后我只需要获得(未知的行数)。要做到这一点,我将使用\
sed -e '1d' -e '$d' file
答案 0 :(得分:2)
如果我理解正确,你可以简单地写一下:
sed -n "/$first/, /$second/ p" file
"
允许bash评估变量,与'
答案 1 :(得分:1)
使用包含awk
和tac
的打印标记:
$ tac file | awk '/\$first/{p=0;exit}p;/\$second/{p=1}' | tac
12345
[user@host path]# command
unknow number of rows
这会在最后一次$first
之后和$second
出现之前获取行。