linux - sed 命令复制有字符串的行

标签 linux sed text-processing

我想把有字符串的行复制到另一个文件

例如

一个文件包含以下行

ram 100 50
gopal 200 40
ravi 50 40
krishna 300 600
Govind 100 34

我想通过跳过(一行中第一次出现的)100 或 200 之前的所有字符,将具有 100 或 200 的行复制到另一个文件

我要复制 100 50 200 40 100 34 到另一个文件

我正在使用 sed -n '/100/p' 文件名 > 输出文件

你能帮我用一个命令在任何一个字符串中添加行吗

最佳答案

简短的 sed 方法:

sed '/[12]00/!d; s/[^0-9[:space:]]*//g; s/^ *//g;' filename > outputfile
  • /[12]00/!d - 排除/删除所有不匹配 100200 的行/p>

  • s/[^0-9[:space:]]*//g - 删除除数字和空格之外的所有字符

输出文件内容:

100 50
200 40
100 34

关于linux - sed 命令复制有字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46143856/

相关文章:

java - Linux 中 Log4j 的换行符 (%n) 模式

使用 Curl 下载文件的 Bash 脚本

python - 文本预处理+Python+CSV : Removing special characters from a column of a CSV

linux - rpmbuild 不保留目录的权限

linux - Linux 服务器的 SVN 存储库管理是否有任何 GUI 工具?

c++ - 在代码块中运行发布版本时出现段错误,但运行调试版本时不会出现段错误

shell - 如何仅提取bash中两个字符串之间多行的第一个实例?

linux - 在 linux 中搜索和替换一行?

bash - 根据 Bash 中的列值过滤行

python - 在 Python 的 ASCII 文件中查找/替换带注释的子字符串