如何使用unix读取以特定字符串开头的文件
我有一个文件,其中有一个特定的字符串,它从不重复,我的所有数据都从这个字符串开始。我的要求是读取此字符串下的所有数据(例如[string start]),并将读取的数据重定向到另一个文件。在一行中使用如何使用unix读取以特定字符串开头的文件,unix,Unix,我有一个文件,其中有一个特定的字符串,它从不重复,我的所有数据都从这个字符串开始。我的要求是读取此字符串下的所有数据(例如[string start]),并将读取的数据重定向到另一个文件。在一行中使用sed很容易实现 sed -ne 'H;1h;${g;s/.*string-start//;p}' input.txt > output.txt 这是分解过程 -ne以安静模式运行以下脚本 h/h-复制/追加模式空间以保留空间,h将首先追加\n以保留空间 H;1h-仅用于复制所有文本以保留
sed
很容易实现
sed -ne 'H;1h;${g;s/.*string-start//;p}' input.txt > output.txt
这是分解过程
以安静模式运行以下脚本-ne
-复制/追加模式空间以保留空间,h将首先追加\n以保留空间h/h
-仅用于复制所有文本以保留空格,1匹配第一行H;1h
-用于将s/../…/
字符串开始之前的文本替换为空,这意味着将其删除
-打印当前图案空间p
-匹配最后一行${…}
input.txt
如下所示
abc
def
ghistring-startjkl
mno
pqr
jkl
mno
pqr
output.txt
如下所示
abc
def
ghistring-startjkl
mno
pqr
jkl
mno
pqr
@克里希纳·坎特:这个命令可能会有帮助。试试看:
sed -e 's/^.*\(search-string\)/\1/' input-file > output-file
@兰迪斯:
我尝试使用下面的命令,但发现相同的解析错误
$sed-ne'H;1h${g;s/*\START-OF-DATA//g;p}'请建议 你能举例说明文件的外观吗?如果你想在这里获得帮助,你需要举例说明你想查找的内容以及你迄今为止(在问题正文中)尝试过的内容。只要找到它就行了。似乎你自己的回答中的
@Landys
不会通知我。请尝试sed-ne'H;1h${g;s/*START-OF-DATA//g;p}'file.txt>file.out
。请注意,START-OF-DATA
前面没有“\”。在我的示例中,它用于转义[
,我将简化它。