我已经研究了这里的其他问题,但还没有真正找到一个对我的作品。我试图从文件中选择特定的行,并用另一个字符串替换该行上的字符串。所以我有一个名为my_course的文件。我试图修改my_course中以“123”开头的一行。在那一行我想用“1”替换字符串“0”。帮帮我?我怎样才能在特定的线替换字的文件中UNIX
回答
一种可能是使用sed的:
sed '/^123/ s/0/1/' my_course
在第一
/../
部分,你只需要指定模式你正在寻找^123
了开头的行123在您指定的替代部分
s/from/to/
要执行。
请注意,默认情况下,在替换之后,文件将写入stdout。你可能会想:
重定向使用
... > my_new_course
“到位”执行替换使用
-e
开关输出。如果您使用的是地方的破坏性的sed
您可能希望使用-iEXTENSION
,以便在出现问题时保留原始版本的给定EXTENSION的副本。
编辑: 要匹配所需的存储在一个变量,你必须用双引号"
为使用单qoutes '
将阻止变量扩展到封闭sed脚本的前缀内衬:
sed "/^$input/ s/0/1/" my_course
我不能得到它的工作。 im使用sed'/^$ input/s/0,/ 1,'my_course – user2012751 2013-03-26 20:45:27
$ input包含特定行的第一个字 – user2012751 2013-03-26 20:46:14
它会是因为0,是字符串的一部分而不是字符串本身 – user2012751 2013-03-26 20:52:19
有无你试过这个: sed -e'[line] s/old_string/new_string /'my_course
PS:不应该使用[],只是为了说清楚你应该把数字放在前面这个“的”。
干杯!
事实上,在这种情况下,-e是没有必要的,我可以写只是
sed '<line number>s/<old string>/<new string>/' my_course
谢谢,但在这种情况下,我不能使用行号,因为我的程序将修改文本文件和行号不会保持不变 – user2012751 2013-03-26 20:47:55
- 1. 我怎样才能在标签上替换特定的字符
- 2. 我怎样才能只替换一些python字符串中的特定字符?
- 3. 我怎样才能避免被Regex.replace被替换特定的字符串模式()
- 4. UNIX替换文件中的特定行
- 5. 我怎样才能替换一个字符串在PHP网址
- 6. 我怎样才能的application.ini文件
- 7. 我怎样才能改变路径到特定文件夹
- 8. 我怎样才能抓住括号内的特定字符串
- 9. 我怎样才能在斯威夫特
- 10. 我怎样才能在斯威夫特
- 11. 我怎样才能替换公式中的数字与特定单元格的值
- 12. 我怎样才能取代在JavaScript中的字符串的特定部分?
- 13. 我怎样才能复制一个具有特定日期的文件在c#
- 14. jQuery的 - 我怎样才能使这项工作(标签替换)
- 15. 我怎样才能看到sdf文件
- 16. 我怎样才能从PSD文件
- 17. 我怎样才能否定Mercurial中的开发线?
- 18. 我怎样才能
- 19. 在我的铁轨erb中,我怎样才能用link_to替换ajax button_to?
- 20. 在Perl CGI中,我怎样才能使用UNIX命令?
- 21. 我怎样才能在Magento
- 22. 我怎样才能在C++
- 23. 我怎样才能在Python
- 24. 我怎样才能在Castle.Windsor
- 25. 我怎样才能在MySQL
- 26. 我怎样才能在Zebble
- 27. 我怎样才能在vb.net
- 28. 我怎样才能在Doctrine2
- 29. 我怎样才能在Python
- 30. 我怎样才能在RSPEC
向我们展示你已经尝试了什么。 – 2013-03-26 20:38:12