doc*_*doc 4 regex perl awk sed pattern-matching
输入文件具有以下行,并使用一个文件中的第二个字段"+"符号行和另一个文件中的" - "符号行来隔离它们:
24 + I am the Five man
22 - Who are you? The new number two!
51 + . . . And four on the floor
42 +
16 - Who is number one?
33 - I three you.
Run Code Online (Sandbox Code Playgroud)
当2美元是'+',a = $ 1 + 500和b = $ 1-500时,$ 2是' - ',a = $ 1-500,b = $ 1 + 500?'a'和'b'是新变量.
另外一个选项
awk 'BEGIN{m["+"]="plus.txt";m["-"]="minus.txt"} $2 ~ /^[+-]$/{print>>m[$2]}'
Run Code Online (Sandbox Code Playgroud)
使用Perl:
perl -lne '/^\d+ -/ && print(STDERR) || print' input 2> minus > plus
Run Code Online (Sandbox Code Playgroud)
形式略有不同:
perl -lpe 'select(/^\d+ -/?STDERR:STDOUT)' input 2> minus > plus
Run Code Online (Sandbox Code Playgroud)
也可以使用tee:
tee >(sed -n '/^[0-9]* -/p' > minus) < input | \
sed -n '/^[0-9]* +/p' > plus
Run Code Online (Sandbox Code Playgroud)