这很好用:
myPromise.then(value => {
console.log(value)
// do whatever you're going to do with value
};
但如果我尝试这样的事情:
printf "%s\n" data_{1..10} | sed -n '/_2$/ s/a/e/gw file'
我明白了:
printf "%s\n" data_{1..10} | sed -n '/_2$/ { s/a/e/gw file }'
如果我将sed: -e expression #2, char 0: unmatched `{'
替换为w file
,则可以在p
内正常工作。这有效:
{}
那么,为什么printf "%s\n" data_{1..10} | sed -n '/_2$/ { s/a/e/gp }'
在没有w
的情况下工作,为什么不在{}
内呢?以及如何在{}
内使用它?
答案 0 :(得分:3)
w
之后的所有内容都被解析为文件名。也就是说,sed正在尝试写入名为file }
的文件(或者,如果开放的{
具有匹配的}
,但它不会。)尝试添加换行符:
printf "%s\n" data_{1..10} | sed -n '/_2$/ { s/a/e/gw file
}'
答案 1 :(得分:3)
这可能适合你(GNU sed):
sed -ne '/_2$/{s/a/e/gw fileOut' -e '}' fileIn
或使用一点bash语法糖:
sed -n $'/_2$/{s/a/e/gw fileOut\n}' fileIn
但是,由于地址后面只有一个命令:
sed -n '/_2$/s/a/e/gw fileOut' fileIn
是首选方式。
或者:
sed -e '/_2$/s/a/e/gw fileOut' -e 'd' fileIn