如何在bash shell脚本中使用sed和egrep

时间:2018-09-20 03:03:08

标签: linux bash shell sed command-line

我正在编写一个bash shell脚本,其中我想使用两个shell命令sedegrep

我的bash应该脚本读取一个文本文件q2.txt,然后使用egrepsed进行一些操作。

代码如下。

#!/bin/bash
var=$(<q2.txt)

sed "s/^[ \t]*//" -i var
grep -v '^/\*.*\*/$' var
echo "$var"

我读取了变量q2.txtvar的内容。然后使用sed s/^[ \t]*//" -i var删除制表符和空格,并更新我的var

然后在我的更新变量上执行grep -v '^/\*.*\*/$' var,以选择一些具有特定开始和结束的行。

但是实际上,grepsed不适用于var

Output
sed: can't read var: No such file or directory
grep: var: No such file or directory

2 个答案:

答案 0 :(得分:1)

这是一种更简单的方法

cat q2.txt | sed "s/^[ \t]*//" | grep -v '^/\*.*\*/$'

答案 1 :(得分:1)

问题更多是与shell变量有关,而不是sed / grep。

请参阅:

最好也使用管道(|,如其他答案所示,因此您不必存储中间结果。