gpt4 book ai didi

unix - 如何删除匹配的行和上一行?

转载 作者:行者123 更新时间:2023-12-04 13:24:34 24 4
gpt4 key购买 nike

我需要删除匹配的行和之前的行。
例如,在下面的文件中,我需要删除第 1 行和第 2 行。

我试过 "grep -v -B 1 "page.of."1.txt
我希望它不会打印匹配的行和上下文。

我试过 How do I delete a matching line, the line above and the one below it, using sed?但无法理解 sed 的用法。

---1.txt--
**document 1** -> 1
**page 1 of 2** -> 2

testoing
testing

super crap blah

**document 1**
**page 2 of 2**

最佳答案

你想做一些与 answer given 非常相似的事情

sed -n '
/page . of ./ { #when pattern matches
n #read the next line into the pattern space
x #exchange the pattern and hold space
d #skip the current contents of the pattern space (previous line)
}

x #for each line, exchange the pattern and hold space
1d #skip the first line
p #and print the contents of pattern space (previous line)

$ { #on the last line
x #exchange pattern and hold, pattern now contains last line read
p #and print that
}'

并且作为单行
sed -n '/page . of ./{n;x;d;};x;1d;p;${x;p;}' 1.txt

关于unix - 如何删除匹配的行和上一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com