修剪前导标签

时间:2013-01-25 01:52:53

标签: bash makefile

我有一个makefile,其所谓的“行动”由\t分隔。当我需要执行这些操作时,shell当然会抱怨\tgcc -o a filename.c Coomand not found。 搜索仅产生如何使用sed修剪前导/尾随制表符/空格。但是,如果不允许使用它,而只允许使用bash

这种“规则”的例子是:

A : B C D E F G
\tgcc -o a A

\t这里仅为了清楚起见,在实际文件中我按Tab键。我需要的是能够阅读制表符后面的内容并使用eval或反引号执行它。如果我重新勾选我读到的内容(即没有修剪标签字符),shell就会抱怨。

2 个答案:

答案 0 :(得分:1)

你不应该在makefile的命令部分上写\ t。 按Tab键获取所需空间。

A : B C D E F G
    gcc -o a A

编辑 - 如果您使用的是vi / vim,则可能正在使用一个命令将TAB替换为设定的数量 空间(通常为4)。检查一下。

答案 1 :(得分:0)

如果您只想使用bash,则需要解析文件,删除\t并转储到新文件。

像这样;

while -r line; do echo "${line//\t/}" >> new_makefile; done < makefile