Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 是剪还是剪?如何仅从文件中获取列标题?_Regex_Shell_Unix_Sed_Ksh - Fatal编程技术网

Regex 是剪还是剪?如何仅从文件中获取列标题?

Regex 是剪还是剪?如何仅从文件中获取列标题?,regex,shell,unix,sed,ksh,Regex,Shell,Unix,Sed,Ksh,首先,提前感谢大家的帮助!我在学校一直在学习Unix,直到最近的一次家庭作业,我一直都做得很好 我正试图找出在我的家庭作业中处理这一部分的最佳方式 我有一个头文件,我必须分为两个单独的文件。本部分作业分为两部分: 首先,文件的前两行放入一个文件中。我这样做是因为: head -2 headers > file1 然而,下一个请求是获取两个列标题(--Regular--and--timeout--)并将它们放入另一个文件中…这正是我遇到的问题 头文件如下所示: Merry Land Tra

首先,提前感谢大家的帮助!我在学校一直在学习Unix,直到最近的一次家庭作业,我一直都做得很好

我正试图找出在我的家庭作业中处理这一部分的最佳方式

我有一个头文件,我必须分为两个单独的文件。本部分作业分为两部分:

首先,文件的前两行放入一个文件中。我这样做是因为:

head -2 headers > file1
然而,下一个请求是获取两个列标题(--Regular--and--timeout--)并将它们放入另一个文件中…这正是我遇到的问题

头文件如下所示:

Merry Land Training Academy
Pay Report
Week of June 12, 1999

                --Regular---    --Overtime--    Gross   Net
Employee        Hours   Rate    Hours   Rate    Pay     Pay
我知道grep只能匹配包含模式的行,但是如何删除最后两行之后的字符呢

例如,我的grep将返回以下内容:

egrep 'Regular' headers

            --Regular---    --Overtime--    Gross   Net 
我知道在执行grep删除单词后,我可以手动执行sed替换“Gross”和“Net”,但是我知道这是低效的

这个命令将是一个脚本的一部分,该脚本将包含许多其他进程(到目前为止我已经能够做到)

在我的在线研究中,我知道很多人建议使用awk,但是我们还没有在课程中了解到这一点


再次,提前谢谢你。我真的很期待从每个人的经验中学习。

为什么你认为使用
sed
效率低下?当然,将
grep
配管到
sed
将是一个错误,但是
sed
相当不错。您还没有很好地定义问题,但是假设您可以通过字符串
--
的存在来区分标题,您可以简单地执行以下操作:

sed -n -e '/--/s/[^-]*$//p' input > output
这将获取包含
-
的所有行,并输出所有内容,直到最后的
-
。如果只想打印第一行,请执行以下操作:

sed -n -e '/--/{s/[^-]*$//p;q;}' input > output

你能举一个你的输入文件的例子吗?如果总是在同一个位置,剪切怎么样<代码>切割-c1-47@比尔谢谢你的回复!我提到的头文件是输入文件。我试图将--Regular--和--timeout--列标题放入一个单独的文件中,该文件可以任意命名(在本例中可能是file2)。@BMW-列标题应该位于相同的位置。我一定要狠狠揍一顿。出于某种原因,我并没有真正考虑通过数数角色来进行剪辑。非常感谢。我想我应该将行导出,保存到临时文件,然后从临时文件中剪切?如果使用剪切,请使用字段计数而不是字符计数。并且不保存到临时文件;用烟斗吧。嗨,威廉,谢谢你的帮助!我很抱歉说不清楚。我将尽可能多地添加上下文。我并不是说sed本身效率低下。就像我想做的那样。我来试一试。再次感谢你!