我有一些大的CSV文件,我想提取包含模式'x'的第X行和包含模式'y'的第Y行之间的所有数据
例如:
other_data
Header
data
data
data
Footer
other_data
Run Code Online (Sandbox Code Playgroud)
我希望能够管理(和包括)Header - > Footer之间的所有内容到一个新文件.
谢谢!
Bet*_*eta 19
它在sed中非常简单:
sed -n '/Header/,/Footer/p'
Run Code Online (Sandbox Code Playgroud)
要么
sed '/Header/,/Footer/!d'
Run Code Online (Sandbox Code Playgroud)
Fat*_*ror 18
使用awk它非常简单:
awk '/Header/ { show=1 } show; /Footer/ { show=0 }'
Run Code Online (Sandbox Code Playgroud)
基本上将状态保存在名为的变量中show.当我们点击Header时我们将其打开,Footer我们将其关闭.当它打开时,show规则执行打印记录的默认操作.
Chr*_*our 11
另一种方式awk:
awk '/Header/,/Footer/' file
Header
data
data
data
Footer
Run Code Online (Sandbox Code Playgroud)
只需重定向输出以保存在新文件中:
awk '/Header/,/Footer/' file > newfile
Run Code Online (Sandbox Code Playgroud)