我正在使用下面的代码从文件A.txt的所有行中删除前导和尾随空格
sed 's/^[ t]*//;s/[ t]*$//' ./A.txt > ./B.txt
问题出现在开始或结束的行上。 所以说例如,以string“timezone”开头的原始行变成“imezone”
你能告诉我这里发生了什么吗? 并且如果存在已知的问题解决scheme。
提前致谢。
find零的Opengl 3.2像素格式匹配?
Java线程和本地Linux线程之间的匹配
用grep命令匹配特定的列
Sed在日志文件中使用
用驱动程序注册(/绑定/匹配)设备
一些老版本的sed不理解C风格的转义字符,比如 t,并把它当作两个字符''和't'。 您可以通过使用文本制表符来避免这个问题 – 如果您直接在shell中输入,请键入Ctrl+V Tab 。
另一种选择,使用空格字符类,如果您的各种sed不支持s :
sed 's/^[[:space:]]*//;s/[[:space:]]*$//'
如果你只使用空白字符类,你可能会有更好的运气:
sed -e 's/^s*//' -e 's/s*$//' A.txt > B.txt
新版本的sed理解 t但旧版本可能没有。 用字面标签替换 t可能会更好(CTRL-V会给你的)
你在什么系统上使用什么版本的sed? (sed – 版本为GNU sed)
呆子
awk '{gsub(/^[[:space:]]+|[[:space:]]+$/,"")}1' file
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。