str='
99.900; 8423; 06:44:41
100.000;8438; 06:46:12
Number of patterns: 8438
'
printf '%s' "$str" | sed -n -e '${x;1!p;};h' # print last line but one
printf '%s\n' H '$-1p' q | ed -s <(printf '%s' "$str") # same
printf '%s\n' H '$-2,$-1p' q | ed -s <(printf '%s' "$str") # print last line but two
# print the next-to-the-last line of a file
sed -e '$!{h;d;}' -e x # for 1-line files, print blank line
sed -e '1{$q;}' -e '$!{h;d;}' -e x # for 1-line files, print the line
sed -e '1{$d;}' -e '$!{h;d;}' -e x # for 1-line files, print nothing
8条答案
按热度按时间r7knjye21#
试试看:
jgzswidk2#
受https://stackoverflow.com/a/7671772/5287901启发的简短sed单行广告
说明:
-n
安静模式:不自动打印模式空间x
:交换模式空间和保留空间(保留空间现在存储当前行,模式空间存储前一行,如果有)$
:在最后一行,p
:打印图案间距(上一行,在本例中为倒数第二行)。rwqw0loc3#
使用此
oxiaedzo4#
ed
和sed
也可以执行此操作。nwo49xxi5#
发件人:Useful sed one-liners作者:埃里克·佩门特
你不需要所有的,只要选择一个。
yzxexxkh6#
为了 澄清 已经 说过 的 话 :
中 的 每 一 个
返回
格式
w1jd8yoj7#
kjthegm68#
这将从第二行打印到最后一行。