假设我有一个名为 schema.prisma 的文件,如下所示
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = somevalue
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
todos Todo[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Todo {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String @db.VarChar(255)
completed Boolean @default(false)
user User @relation(fields: [userId], references: [id])
userId Int
}
我想使用 SED 来替换第二个提供程序实例
我制作了以下正则表达式,它可以让我得到我想要的行
\bprovider(?!.*prisma).*/
但我似乎无法让 SED 来使用它
例如
sed 's/\bprovider\(?!.*prisma\)/blue/' ./prisma/schema.prisma
应该产生
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = blue
... rest of file
我知道 sed 逐行读取,所以这种方法对我来说似乎应该有效。
这个正则表达式我缺少什么?
sed
没有 look around
功能。
更好地使用
perl
:
perl -pe 's/\bprovider\(?!.*prisma\)/blue/' ./prisma/schema.prisma