以逗号
分隔记录退出代码最后两个字段是2个不同版本的脚本
的退出代码import triggerEvent from 'trigger-event';
import component from './components/site-menu';
describe('triggering menu button', () => {
let menuToggleSpy;
beforeEach(() => {
menuToggleSpy = jasmine.createSpy('event');
component();
});
it('dispatches menu.toggle event', () => {
document.addEventListener('menu.toggle', menuToggleSpy);
const $trigger = document.querySelector('.js-trigger-main-menu');
triggerEvent($trigger, 'click');
expect(menuToggleSpy).toHaveBeenCalled();
});
});
退出代码范围为0到20 如何使用不同的退出代码提取行?
我厌倦了这样做:
/opt/a/b/c,parameter,a b c,3,1
/opt/a/d/e,parameter,a b c,1,1
/opt/a/b/d,parameter,0,0
/opt/a/e/c,parameter,0,1
由于
答案 0 :(得分:3)
使用awk
:
awk -F , '$NF != $(NF-1)' log
使用FS
将字段分隔符(,
)设置为-F ,
。
NF
是该行中的字段数。
$NF
是该行上最后一个字段的值。
$(NF-1)
是该行倒数第二个字段的值。
awk
的默认操作是打印该行(即{print}
)。因此,当最后两个字段不同时,awk脚本只需返回truth-y
值。所以我们比较它们。
使用sed
:
sed '/,\([0-9]\+\),\1$/d' log
d
选择与模式,
匹配的所有行,后跟一些数字([0-9]\+
)并捕获该数字(\(
/ \)
包装)然后是另一个,
和我们已匹配的相同数字(第一个捕获组的\1
)。这会让sed
每隔一行打印一次(不匹配的那些)。