Text-Processing

在模式之前將文件一分為二

  • September 8, 2015

這是一個幾乎相同的問題,將文件分成兩部分,在一個模式file1下,而不是在範例中讓行達到 XYZ file.txt

ABC
EFG
XYZ
HIJ
KNL

我希望將 XYZ 包含在其中file2(但XYZ仍然是要劃分的模式)。我現在正在使用這個答案:https ://unix.stackexchange.com/a/202516/108861然後將最後一行添加file1到頂部file2並從中刪除file1,但是有沒有更簡單的單行解決方案?

修改我對另一個問題的解決方案非常容易。只需刪除next

perl -ne 'if(/XYZ/){$a=1} ; $a==1 ? print STDERR : print STDOUT;' file >f1 2>f2;

這將創建f1所有內容XYZf2其他所有內容,包括XYZ.


或者,您連結到的問題的公認答案已經滿足了您的需求。它只保存XYZ在第一個文件中。要在第二個中使用它,只需反轉兩個awk命令:

awk '/XYZ/{out="file2"}{print >out}; ' out=file1 file

引用自:https://unix.stackexchange.com/questions/228280