bash在文件末尾移动多行

时间:2014-05-18 02:05:28

标签: bash

我有一个包含以下内容的示例文件:

line 1
line 2
line 3
line 4
line 5
line 6
line 7

bash我需要做的是:

  1. 我有一个变量,用于定义我想要操作的行数 ...例如: numberoflines = 3
  2. 我需要在数组中检索第一个" $ numberoflines "来自 上面的文件。
  3. 最后,我需要移动那些" $ numberoflines "在相同的 命令到文件的末尾。
  4. 因此,在我的示例中( numberoflines = 3),该文件变为:

    line 4
    line 5
    line 6
    line 7
    line 1
    line 2
    line 3
    

    我需要使用 numberoflines 变量获得第2点和第3点的代码。

1 个答案:

答案 0 :(得分:1)

你"需要"使用数组?这似乎是一个功课问题。 "继续并删除它"听起来更像那样。如果不是,这是一种没有数组的方法。

#!/bin/bash
lines=3
file=/path/to/file
{ sed "1,${lines}d" < "$file"; head -n "$lines" "$file"; }

删除第一行&#34;&#34;首先是行,然后第二行打印第一行&#34;行&#34;线。

如果这是作业:)你真的需要使用数组,你只需要弄清楚数组中有多少元素,打印来自&#34;行+ 1&#34;到最后,然后从0打印到&#34;行&#34;。或者只是逐行阅读文件,存储行直到你到达$ lines。在您存储$ line行之后,切换到打印而不是存储。然后打印出阵列。如果我是真的这样做,那第二种方式是我做的。