Text-Processing
在最後一行之前插入文本 N 行
我想在最後一行之前的兩行中插入一個新行。所以如果我的原始文件是:
1 2 3 4 5
結果應該是
1 2 3 New line 4 5
使用
ed
:$ printf '$-1i\nNew line\n.\n,p\n' | ed -s file 1 2 3 New line 4 5
ed
編輯腳本:$-1i New line . ,p
這首先移動到從末尾向上的一行 (
$-1
) 並在該行上方插入 (i
) 新內容。插入的內容以單點結尾(允許為多行)。最後一個,p
在終端上顯示完整的修改緩衝區。您可以將其重定向到新文件,也可以使用將其寫回原始文件
printf '$-1i\nNew line\n.\nw\n' | ed -s file
(
,p
更改為w
)。後者也是您類似地
ex
用於這項工作的方式:printf '$-1i\nNew line\n.\nw\n' | ex -s file
ed
並且ex
是標準的面向行的編輯器(與全屏編輯器相反),應該隨您的系統一起提供。請注意,這-s
對每個人都有不同的含義,但在執行此類批處理模式編輯任務時都適用。進一步閱讀:
- 戴爾·多爾蒂和蒂姆·奧萊利 (1987)。“高級編輯”。Unix 文本處理。海登圖書。