Bash sed错误“;没有这样的文件或目录;

Bash sed错误“;没有这样的文件或目录;,bash,url,sed,Bash,Url,Sed,这是我的节目: #!/bin/bash message=( 'somewebsite1' 'somewebsite2' 'somewebsite3' 'somewebsite4' ) for i in "${message[@]}" do longUrl=$(sed -ne 's/.*\(https\{0,1\}:\/\/[^"]*\).*/\1/p' "$i" | head -n 1) if test "$longUrl"; then echo "Shortening Url

这是我的节目: #!/bin/bash message=( 'somewebsite1' 'somewebsite2' 'somewebsite3' 'somewebsite4' )

for i in "${message[@]}"
do
longUrl=$(sed -ne 's/.*\(https\{0,1\}:\/\/[^"]*\).*/\1/p' "$i" | head -n 1)
if test "$longUrl"; then
    echo "Shortening Url $longUrl ..."
    shortUrl=$(curl -s https://www.googleapis.com/urlshortener/v1/url -H 'Content-Type: application/json' -d "{'longUrl': '$longUrl'}" | python -c 'import json, sys; print(json.load(sys.stdin)["id"])')
    message=${message/$longUrl/$shortUrl}
    printf "%s\n" "$i" >> file.txt
fi
done
</pre>
#!/bin/bash 消息=('somewebsite1''somewebsite2''somewebsite3''somewebsite4')

“${message[@]}”中i的

做
longUrl=$(sed-ne的s/*\(https\{0,1\}:\/\/[^“]*\)./\1/p'$i';head-n1)
如果测试“$longUrl”,则
echo“缩短Url$longUrl…”
shortUrl=$(curl-shttps://www.googleapis.com/urlshortener/v1/url -H'内容类型:application/json'-d“{'longUrl':'$longUrl'}”| python-c'导入json,sys;print(json.load(sys.stdin)[“id”])
message=${message/$longUrl/$shortUrl}
printf“%s\n”“$i”>>file.txt
fi
完成
我试图通过将所有URL放入一个数组来缩短URL,但在运行后,出现以下错误:

sed:somewebsite1:没有这样的文件或目录
sed:somewebsite2:没有这样的文件或目录
sed:somewebsite3:没有这样的文件或目录
sed:somewebsite4:没有这样的文件或目录


谢谢!

如果您提供
sed
路径,它会将其视为路径。您需要在以下位置提供输入:


sed-e'…'sed需要一个文件作为其输入,而不是字符串。您的参数被解释为文件名,而不是要处理的实际文本。哇!这很有效…但是我最终得到的是相同的URL,而不是每个条目的唯一URL:x 4
sed -e '...' <<< "$i"