sed 命令复制有字符串的行
sed command to copy lines that have strings
我想将包含字符串的行复制到另一个文件
例如
一个文件包含以下行
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 -n '/100\|200/p' filename > outputfile
sed -n -e '/100/p' -e '/200/p' filename > outputfile
后者可能更容易记住和维护(但也许你应该使用 -f
?),但请注意,如果它们都匹配,它将打印两次。您可以使用以下方法解决此问题:
sed -n -e '/100/{p;b}' -e '/200/{p;b}' filename > outputfile
那么,你为什么要使用 sed?这听起来像是 grep
.
的工作
短sed方法:
sed '/[12]00/!d; s/[^0-9[:space:]]*//g; s/^ *//g;' filename > outputfile
/[12]00/!d
- exclude/delete 所有不匹配 100
或 200
的行
s/[^0-9[:space:]]*//g
- 删除除数字和空格以外的所有字符
outputfile
内容:
100 50
200 40
100 34
这可能适合您 (GNU sed):
sed -n '/[12]00/w anotherFile' file
仅在需要时打印,将匹配 100
或 200
.
的正则表达式写入 anotherFile
我想将包含字符串的行复制到另一个文件
例如
一个文件包含以下行
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 -n '/100\|200/p' filename > outputfile
sed -n -e '/100/p' -e '/200/p' filename > outputfile
后者可能更容易记住和维护(但也许你应该使用 -f
?),但请注意,如果它们都匹配,它将打印两次。您可以使用以下方法解决此问题:
sed -n -e '/100/{p;b}' -e '/200/{p;b}' filename > outputfile
那么,你为什么要使用 sed?这听起来像是 grep
.
短sed方法:
sed '/[12]00/!d; s/[^0-9[:space:]]*//g; s/^ *//g;' filename > outputfile
/[12]00/!d
- exclude/delete 所有不匹配100
或200
的行
s/[^0-9[:space:]]*//g
- 删除除数字和空格以外的所有字符
outputfile
内容:
100 50
200 40
100 34
这可能适合您 (GNU sed):
sed -n '/[12]00/w anotherFile' file
仅在需要时打印,将匹配 100
或 200
.
anotherFile