使用命令行查找和替换?

时间:2014-08-07 20:53:56

标签: perl shell command-line command

我正在尝试使用命令行来查找和替换一些文本。我有一个几百万行的文件,与此类似:

Something-Here/Grafton-WV</loc>
More-Information/Claremore-OK</loc>
This-Is-It/Seminole-OK</loc>
Your-Company/Lunenburg-MA</loc>

我需要做的是删除斜杠及其后的所有内容。我之前做过通配符查找/替换,但是我不确定需要使用什么命令来从斜杠开始并继续直到行尾。

这是输出应该是什么:

Something-Here
More-Information
This-Is-It
Your-Company

2 个答案:

答案 0 :(得分:1)

以下单行可能适合您:

perl -pe 's{/.*}{}' file.txt

说明:

切换

  • -p:为输入文件中的每个“行”创建一个while(<>){...; print}循环。
  • -e:告诉perl在命令行上执行代码。

<强>代码

  • s{/.*}{}:删除行
  • 中第一个正斜杠后的所有字符

答案 1 :(得分:1)

通常使用sed

完成
sed 's|/.*||' file.txt > newfile.txt