Text-Processing
在模式之前將文件一分為二
這是一個幾乎相同的問題,將文件分成兩部分,在一個模式
file1
下,而不是在範例中讓行達到 XYZfile.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
所有內容XYZ
和f2
其他所有內容,包括XYZ
.或者,您連結到的問題的公認答案已經滿足了您的需求。它只保存
XYZ
在第一個文件中。要在第二個中使用它,只需反轉兩個awk
命令:awk '/XYZ/{out="file2"}{print >out}; ' out=file1 file