我一直在试图弄清楚如何在bash脚本中使用grep
来匹配模式到文件末尾。该文件每次都不总是相同的行数,并不总是[A-Za-z0-9]
。我正在尝试从基于平面文件的目录迁移到数据库。
文件摘录:
First, Last: Doe, John
ID: xxxxxxxx
...
Case Notes:
This "person" does not exist!
Please do not add him.
Thanks.
我需要抓取从Case Notes:
到文件末尾的所有内容。我似乎无法找到任何帮助,因为没有真正的EOF角色。
想法?
答案 0 :(得分:6)
awk
脚本可能更容易:
awk '/^Case Notes:$/ { matched = 1 } matched'
或者如果您不想看到Case notes:
字符串本身,请将其反转:
awk 'matched; /^Case Notes:$/ { matched = 1 }'
答案 1 :(得分:3)
sed -n '/^Case notes:/,$p' file >newfile
答案 2 :(得分:1)
几年后你可以使用
more +"Case notes:" file
答案 3 :(得分:0)
纯bash
可以做到
declare -i tf=0
while read -r line
do
case "$line" in
*"Case notes"* ) tf=1;
esac
[[ $tf -eq 1 ]] && echo "$line"
done < file