linux - 我们如何按照特定模式从文件中的行中删除字符串?

标签 linux unix

我有一个包含许多同名行的纯文本文件:

./intuit
./intuit/apac-trial13
./safenetdatasecurityisraelltd3
./safenetdatasecurityisraelltd3/ldk-emea-eval

我想从所有行中删除 ./ 还有

./intuit
./safenetdatasecurityisraelltd3

借助任何 unix 命令,我可以从所有行和没有子目录的行中删除 ./

最佳答案

$ sed -n 's@^\./@@; /\// p' test.txt
intuit/apac-trial13
safenetdatasecurityisraelltd3/ldk-emea-eval

我们在那里做了什么? sed -n 表示“除非我这样说,否则不要打印”。然后,s@^\./@@ 删除前导 ./(如果存在)。最后,我们用 / 匹配任何行(适当转义),并用 p 打印它。

关于linux - 我们如何按照特定模式从文件中的行中删除字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27855220/

相关文章:

c++ - Linux C++ ._MyFirst ._MyLast vector 等效

c - sscanf 扫描格式化文件时出错

mysql - 我可以通过在 Mysql 中复制文件夹来恢复一些 mysql 数据库吗

linux - 为什么 "/bin/sh cd/root/eos/"不起作用,但 "/bin/sh -c ls && cd/root/eos/"在 centos 中运行良好

python - 删除匹配项倒数第二个和倒数第二个之间的所有内容

javascript - 如何使用 Unix 将 Node.js 脚本连接在一起 |管道(在命令行上)?

bash - Unix:在 csv 文件的列中查找重复项,省略一个可能的值

perl - 从 perl 调用带有反引号的 find - find : write error: Broken pipe

javascript - 日期处理 Unix 日期不正确(或者我错误地使用日期?)

linux - 如何使用 xargs 将 ls 通过管道传输到 cat 中,以便列出文件名?