我正在编写一个bash shell脚本,其中我想使用两个shell命令sed
和egrep
。
我的bash应该脚本读取一个文本文件q2.txt
,然后使用egrep
和sed
进行一些操作。
代码如下。
#!/bin/bash
var=$(<q2.txt)
sed "s/^[ \t]*//" -i var
grep -v '^/\*.*\*/$' var
echo "$var"
我读取了变量q2.txt
中var
的内容。然后使用sed s/^[ \t]*//" -i var
删除制表符和空格,并更新我的var
。
然后在我的更新变量上执行grep -v '^/\*.*\*/$' var
,以选择一些具有特定开始和结束的行。
但是实际上,grep
和sed
不适用于var
。
Output
sed: can't read var: No such file or directory
grep: var: No such file or directory
答案 0 :(得分:1)
这是一种更简单的方法
cat q2.txt | sed "s/^[ \t]*//" | grep -v '^/\*.*\*/$'
答案 1 :(得分:1)
问题更多是与shell变量有关,而不是sed / grep。
请参阅:
最好也使用管道(|
,如其他答案所示,因此您不必存储中间结果。