Unix 使用sed在特定字符串后添加一行,可以';t使其适用于涉及';(/等
我正在尝试使用sed在文件中的特定字符串后添加一行。有人能帮忙吗 文件名:Unix 使用sed在特定字符串后添加一行,可以';t使其适用于涉及';(/等,unix,awk,sed,terminal,Unix,Awk,Sed,Terminal,我正在尝试使用sed在文件中的特定字符串后添加一行。有人能帮忙吗 文件名: example.js localeData: require('react-intl/locale-data/en'), localeData: require('react-intl/locale-data/en'), messages: require('../locale/messages_en'), 既有线路: example.js localeData: require('react-intl/loca
example.js
localeData: require('react-intl/locale-data/en'),
localeData: require('react-intl/locale-data/en'),
messages: require('../locale/messages_en'),
既有线路:
example.js
localeData: require('react-intl/locale-data/en'),
localeData: require('react-intl/locale-data/en'),
messages: require('../locale/messages_en'),
所需输出:
example.js
localeData: require('react-intl/locale-data/en'),
localeData: require('react-intl/locale-data/en'),
messages: require('../locale/messages_en'),
更新:
在某些情况下,此命令会将正在搜索的字符串替换为我希望附加的字符串。我不希望替换它:
sed 's/react-intl\/locale-data\/en/..\/locale\/messages_en/g' example.js
您可以使用
awk
使用此非正则表达式方式:
awk -v s="localeData: require('react-intl/locale-data/en')," \
-v r="messages: require('../locale/messages_en')," '
1
index($0, s) {
print r
}' file
使用
a
运算符在sed
中的匹配行后插入一行:
sed '/react-intl\/locale-data\/en/a messages: require('..\/locale\/messages_en'),' example.js
react intl\/locale data\/en
匹配一行,其中包含react intl/locale data/en
字符串,以及a messages:require('..\/locale\/messages_en'),
插入messages:require('../locale/messages_en'),
右下。更新了@anubhava no,不限于使用sed,任何不需要手动干预的命令(这是脚本的一部分)。sed只是搜索“如何在文件中的特定字符串后添加行”时的绝大多数结果。这是否回答了您的问题?