use*_*751 -2 unix bash replace
我已经在这里研究了其他问题,但还没有找到适合我的问题.我正在尝试从文件中选择一个特定的行,并用另一个字符串替换该行上的字符串.所以我有一个名为my_course的文件.我正在尝试修改my_course中以"123"开头的一行.在那一行,我想用"1"替换字符串"0".救命?
一种可能性是使用sed:
sed '/^123/ s/0/1/' my_course
Run Code Online (Sandbox Code Playgroud)
在第一/../
部分中,您只需要为^123
从123开始的行指定要查找的模式.
在s/from/to/
您已指定要执行的替换的部分中.
请注意,默认情况下,替换后文件将写入stdout.你可能想要:
使用重定向输出 ... > my_new_course
使用-e
开关sed 执行"就地"替换
如果您正在使用破坏性原位变体,您可能还想使用-iEXTENSION
原始版本的给定EXTENSION版本,以防出现问题.
编辑:
要匹配所需的内衬与存储在变量中的前缀,您必须用双引号括起sed脚本,"
因为使用单个qoutes '
将阻止变量扩展:
sed "/^$input/ s/0/1/" my_course
Run Code Online (Sandbox Code Playgroud)