我在makefile中打印出每行文件都有一個簡單的awk行。使用if語句在awk調用時出現語法錯誤,無法運行
awk '{print $0}' ../foo/foo.h >> bar.c
當我運行make時它工作正常。但是在foo.h中有一些我不想結轉到bar.c的行。所以我修改了awk。
awk '{if ($0 != "#include \"foobar.h\"") {print $0}}' ../foo/foo.h >> bar.c
但我得到一個語法錯誤回來。
awk '{if (!= "#include \"foobar.h\"") {print }}' ../foo/foo.h >> bar.c
awk: {if (!= "#include \"foobar.h\"") {print }}
awk: ^syntax error
我猜測它是我的一個簡單的錯誤,但我無法弄清楚。
你知道你的第一個'awk'腳本沒用嗎? – karakfa
不會像'cat ../foo/foo.h | grep -v'#include「foobar.h」'| grep -v'#include「foobar2.h」'>> bar.c'足夠了嗎?沒有編程也沒有轉義維護。 – svante
爲什麼'awk'當一個簡單的'sed'會做? 'sed'/#include「foobar.h」/ d'../foo/foo.h >> bar.c'。 – alvits