使用 linux 命令删除包含搜索模式的行之前的行
Delete the line prior to the line containing the search pattern using linux command
我有一个包含单词和一些字符的 yaml 文件。
version: "5.0.0"
migratorConfigs:
-
name: "SchemaMigrator"
order: 1
parameters:
location: "step1"
schema: "identity"
-
version: "5.1.0"
migratorConfigs:
-
name: "IdentityDataCleaner"
order: 1
parameters:
schema: "identity"
-
name: "SchemaMigrator"
order: 2
parameters:
location: "step1"
schema: "identity"
-
name: "RegistryDataMigrator"
order: 6
parameters:
schema: "um"
我只需要删除 name: "RegistryDataMigrator"
之前的破折号 (-)。有很多破折号,我只想删除最后一个。
有什么想法吗?
我刚从
找到这个答案
http://www.theunixschool.com/2012/06/sed-25-examples-to-delete-line-or.html
sed -i -n '/RegistryDataMigrator/{x;d;};1h;1!{x;p;};${x;p;}' /home/user1/Documents/migration.yaml
它对我有用!
这可能对你有用 (GNU sed):
sed 'N;/RegistryDataMigrator[^\n]*$/!P;D' file
使用 N;...;P;D
方法在整个文件的长度内创建两行 window,如果 [=] 的最后一行不打印 window 的第一行17=] 包含 RegistryDataMigrator
.
我有一个包含单词和一些字符的 yaml 文件。
version: "5.0.0"
migratorConfigs:
-
name: "SchemaMigrator"
order: 1
parameters:
location: "step1"
schema: "identity"
-
version: "5.1.0"
migratorConfigs:
-
name: "IdentityDataCleaner"
order: 1
parameters:
schema: "identity"
-
name: "SchemaMigrator"
order: 2
parameters:
location: "step1"
schema: "identity"
-
name: "RegistryDataMigrator"
order: 6
parameters:
schema: "um"
我只需要删除 name: "RegistryDataMigrator"
之前的破折号 (-)。有很多破折号,我只想删除最后一个。
有什么想法吗?
我刚从
找到这个答案http://www.theunixschool.com/2012/06/sed-25-examples-to-delete-line-or.html
sed -i -n '/RegistryDataMigrator/{x;d;};1h;1!{x;p;};${x;p;}' /home/user1/Documents/migration.yaml
它对我有用!
这可能对你有用 (GNU sed):
sed 'N;/RegistryDataMigrator[^\n]*$/!P;D' file
使用 N;...;P;D
方法在整个文件的长度内创建两行 window,如果 [=] 的最后一行不打印 window 的第一行17=] 包含 RegistryDataMigrator
.