添加新行到特定行

时间:2017-09-06 09:15:48

标签: awk sed

希望有人可以帮助我。

我有大量不同行数的文件。 我想在文件中添加新行到特定行,比如说6.

Infile.txt

text1 
text2
text3 

我想要的输出文件是

Outfile.txt

text1 
text2
text3 
\n 
\n 
\n

3 个答案:

答案 0 :(得分:3)

awk 解决方案:

-v r=6
  • r - 表示总行数/最大行数的变量{{1}}

答案 1 :(得分:1)

在awk的SELECT main.table_name parent, par_col.COLUMN_NAME par_column, link.table_name child,link_col.COLUMN_NAME child_column FROM user_constraints main, user_constraints link, user_cons_columns par_col, user_cons_columns link_col WHERE main.constraint_type IN ('P', 'U') AND link.r_constraint_name = main.constraint_name and main.constraint_name = par_col.CONSTRAINT_NAME and link.r_constraint_name = link_col.CONSTRAINT_NAME and main.owner = '<schema_name>' ORDER BY main.table_name, link.table_name; 块中,内置变量END将包含文件最后一行的行号。从那里可以轻松打印所需数量的额外空行。

NR

答案 2 :(得分:1)

恕我直言,最清楚,最明显的处理方法是简单地从最后一个行号加1到目标行数:

$ seq 3 | awk -v n=6 '{print} END{for (i=NR+1; i<=n; i++) print ""}'
1
2
3



$

如果您想保存变量,也可以倒计时:

$ seq 3 | awk -v n=6 '{print} END{while (n-- > NR) print ""}'
1
2
3



$

但恕我直言,为了简洁而牺牲清晰度而不值得。