用Bash和SED我试图用URL替换js文件中的两个字符串.
当我运行.sh脚本时,应插入的两个url是输入参数.
./deploy.sh https://hostname.com/a/index.html https://hostname2.com/test
Run Code Online (Sandbox Code Playgroud)
然而,为了使我的sed命令这可用我要逃避所有向前斜杠:\\?
./deploy.sh https:\\/\\/hostname.com\\/a\\/index.html https:\\/\\/hostname2.com\\/test
Run Code Online (Sandbox Code Playgroud)
如果它们被转义,则此SED命令适用于Mac OSX Sierra
APP_URL=$1
API_URL=$2
sed "s/tempAppUrl/$APP_URL/g;s/tempApiUrl/$API_URL/g" index.src.js > index.js
Run Code Online (Sandbox Code Playgroud)
现在我不想将转义的URL作为参数插入,我希望它自己的脚本能够转义正斜杠.
这就是我尝试过的:
APP_URL=$1
API_URL=$2
ESC_APP_URL=(${APP_URL//\//'\\/'})
ESC_API_URL=(${API_URL//\//'\\/'})
echo 'Escaped URLS'
echo $ESC_APP_URL
#Echos result: https:\\/\\/hostname.com\\/a\\/index.html
echo $ESC_API_URL
#Echos result: https:\\/\\/hostname2.com\\/test
echo "Inserting app-URL and api-URL before dist"
sed "s/tempAppUrl/$ESC_APP_URL/g;s/tempApiUrl/$ESC_API_URL/g" index.src.js > index.js
Run Code Online (Sandbox Code Playgroud)
参数看起来相同,但在这种情况下,SED会抛出错误
sed: 1: "s/tempAppUrl/https:\\/\ ...": bad flag in substitute command: '\'
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里的区别?字符串看起来相同,但给出不同的结果.
尝试将名为test.txt的本地文件复制到我的s3存储桶并将元数据添加到该文件中.
但它总是打印错误:
参数--metadata-directive:无效的选择,有效的选择是:COPY | 更换
是否可以使用cp命令执行此操作,因为我理解应该可以使用的文档. AWS CLI CP DOCS
这是我试过的命令:
aws s3 cp test.txt to s3://a-bucket/test.txt --metadata x-amz-meta-cms-id:34533452
aws s3 cp test.txt to s3://a-bucket/test.txt --metadata-directive COPY --metadata x-amz-meta-cms-id:34533452
aws s3 cp test.txt to s3://a-bucket/test.txt --metadata-directive COPY --metadata '{"x-amz-meta-cms-id":"34533452"}'
aws s3 cp test.txt to s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'
Run Code Online (Sandbox Code Playgroud)
aws --version: aws-cli/1.9.7 Python/2.7.10 Darwin/16.1.0 botocore/1.3.7
操作系统:macOS Sierra版本10.12.1
编辑
值得一提的是,上传没有--metadata标志的文件可以正常工作.
嗯,我已经检查了我的cli版本的帮助,aws s3 cp help
结果它没有--metadata作为一个选项列出,因为上面给定链接的文档确实如此.
如果runnig旧版本的aws cli
Use aws s3api put-object
Run Code Online (Sandbox Code Playgroud)
如何将文件上传到存储桶并添加元数据:
aws s3api put-object --bucket a-bucket --key test.txt …Run Code Online (Sandbox Code Playgroud) 我有一个ID类型为String的List.我想扫描DynamoDB并获取包含没有这些ID的项目的结果列表.但我无法弄清楚如何键入过滤器表达式.ReviewId是String类型的主分区键.
Map<String, AttributeValue> eav = new HashMap<>();
eav.put(":idFilter", new AttributeValue().withSS(idFilter));
DynamoDBScanExpression scanExp = new DynamoDBScanExpression()
.withFilterExpression("ReviewId <> (:idFilter)")
.withExpressionAttributeValues(eav);
Run Code Online (Sandbox Code Playgroud)
上面的过滤器表达式是有效的,但它仍然总是返回列表中具有id的项目.我还尝试in在<>运算符之前和之后包含这个词.
我正在尝试定位包含冒号的元素属性: :
.someclass[xml:lang="da"]
Run Code Online (Sandbox Code Playgroud)
HTML:
<span class="someclass" xml:lang="da">
Run Code Online (Sandbox Code Playgroud)
这是可能的,不适用于上面的语法?
我必须将文本彼此相邻,第一个是粗体,下一个具有正常的字体粗细。但文字底部未对齐,在Chrome中,具有正常字体粗细的文字大约增加了1 px。
一种解决方案是用margin-top: 1px;具有正常字体粗细的文本来补偿此问题,但是由于字体,firefox和chrome似乎处理不同:
font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
在不使用特定浏览器的CSS且不更改字体的情况下如何解决此问题的任何建议。
在FF和Chrome中打开此示例:Fiddle
HTML:
.bold-text, .normal-text {
display: inline-flex;
font-size: 12px;
}
.top-wrapper {
margin-top: 2px;
display: flex;
flex-direction: row;
font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
}
.bold-text {
font-weight: bold;
max-width: 115px;
}
.normal-text {
color: #777;
margin-left: 3px;
}Run Code Online (Sandbox Code Playgroud)
<div class="top-wrapper">
<div class="bold-text">some random text</div>
<div class="normal-text">6 days ago</div>
</div>Run Code Online (Sandbox Code Playgroud)