我一直在使用以下调用sed
来删除行文件。
sed "/% Program:/,/mode: SPIKE/d" file.tt > file.tt.nh
我尝试编写一个 bash 脚本以允许我一次在多个文件上运行该脚本。然而sed
失败了。
sed "/% Program:/,/mode: SPIKE/d" file.tt > file.tt.nh
sed: -e expression #1, char 1: unknown command: `"'
这是我写的不工作的脚本
#!/bin/bash
SEDARG='"/% Program:/,/mode: SPIKE/d"';
for F in *.tt
do
OUT=$F'.nh';
echo 'sed '$SEDARG' '$F' > '$OUT;
sed $SEDARG $F > $OUT
done
令我困惑的是,如果我复制 echo'd 字符串并将其粘贴到命令行中,它可以正常工作。
有谁知道为什么这个脚本失败但命令行调用有效?