【发布时间】:2017-03-11 13:17:33
【问题描述】:
我刚刚在某人不在时接管了他们的代码,其中大部分是连贯的,但我遇到了 thsi 命令,但我无法弄清楚它在做什么:
sed 's@.*@@' filename.txt > filename2.txt
我已经对其进行了测试,它似乎是一种复杂的复制文件的方式,不幸的是我无法访问他的原始文件来运行它。有人可以帮忙吗?
【问题讨论】:
-
@只是一个分隔符,通常使用/,但您也可以替换任何其他字符。在这里它删除所有行并创建一个与输入文件长度相同的空输出文件。 -
@karafka 所指的“相同长度”是“相同数量的行”,但每行仅包含一个换行符(空行)。
-
谢谢!我不知道 @ 可以用作分隔符,它真的让我失望。
-
当
/是模式的一部分时最常用的其他字符,例如解析文件名路径。我见过的最令人困惑的字符是逗号,例如s,.*,,.
标签: bash shell sed command-line