我试图让Internet Archive Save Page函数在bash中运行。我添加了一个分号,并按照this StackOverflow question的建议逃避$ s。
当我尝试执行它时,我仍然收到以下错误:
awk: cmd. line:1: {print
awk: cmd. line:1: ^ unexpected newline or end of string
这是我目前的版本。我一直在尝试各种版本,转义引号等等。所有这些都有相同的错误。
function ia-save() { curl -s -I "https://web.archive.org/save/\$1" | grep Content-Location | awk \'{print https://web.archive.org\$2\}\'; }
有什么想法吗?
答案 0 :(得分:2)
尝试:
function ia-save() {
curl -s -I "https://web.archive.org/save/$1" |
grep Content-Location |
awk '{printf( "https://web.archive.org/%s\n",$2)}';
}
在$ 1前面删除了一个看起来错位的反斜杠。
答案 1 :(得分:1)
基本上它只是一个语法错误;你不能逃避awk程序周围的单引号。
但是,如果您同时使用grep
和awk
,则可能使用的工具太多了。不使用grep
:
function ia-save() {
curl -s -I "https://web.archive.org/save/$1" | \
awk '/Content-Location/{print "https://web.archive.org/"$2}'
}