如何使用 sed 替换随机字符串。例如,如果我有一个如下文本文件:
EF125353.1 待替换 1
EF125353.1再次被替换2
EF125353.1 将被替换等等 3
我想替换之后的任何东西.1直到行尾有一个空格或者没有任何内容,得到最终文件如下:
EF125353.1
EF125353.1
EF125353.1
我在 OS X 中使用 Unix
谢谢
答案1
对于你的简单情况我的解决方案是
cat file | cut -d' ' -f1
-d' '
告诉 cut 字段之间的分隔符是空格。-f1
告诉 cut 保留第一列。
如果你真的想使用 sed,我不建议在这个非常简单的情况下使用,你可以这样做
cat file | sed -e 's/\.1.*/.1/'
-e
后面跟着要执行的命令。s/<search-string>/<replace-string>/
搜索 <search-string> 并将其替换为 <replace-string>。搜索字符串是一个正则表达式。这意味着被\.1.*
解释为点后跟“1”,后跟任意数量(“*”)的任意字符(“。”)。这将被替换为“.1”(这里不需要转义)。
答案2
您也可以使用 awk:
awk '{print $1}' input.txt > output.txt