linux - 如何使用“sed”将字符添加到文件的行首
问题描述
我有一个带有路径名的文本文件(每个都在自己的行中),格式./abc/def/...
为abc/def/...
. 如何使用 sed 将 a 添加./
到所有不以 开头的文件./
?
我尝试了以下命令,但它给了我一个错误:
sed -i -E 's/^(?!\.\/.*$).*/\.\/&/g' ~/output.txt
错误说sed: -e expression #1, char 24: Invalid preceding regular expression
解决方案
请您尝试以下操作。
sed '/^[a-zA-Z]/s/\(.*\)/.\/\1/' Input_file
或者
sed '/^[a-zA-Z]/s/.*/.\/&/' Input_file
第二种解决方案:
sed '/^[^./]/s/^/.\//' Input_file
或者
sed '/^[^./]/s/.*/.\/&/' Input_file
推荐阅读
- java - 重构——从特定接口到通用接口
- django - url 令牌身份验证无法对用户进行身份验证
- docker - 使用 cname 而不是名称服务器的 ip 地址运行 docker 容器 dns 标志
- javascript - 即使未履行承诺,承诺也会执行
- amazon-web-services - 我无法再连接到我的 aws 实例
- excel-formula - 在比较 Excel 中的日期之前确定位置
- javascript - 图片从ckeditor上传到laravel本地文件系统
- python - 如何在固定字符串周围找到匹配项
- python - 打印数据集中最大值的键
- git - 从 mercurial 迁移到 git 时存储 nodeid