2016-05-10 7 views
2

ファイル名はfile1です。私はline- 10の内容をコピーし、新しい含むFileContentは、私が個別に行を削除する方法を知っているのsedを使用してファイル内の行番号を `n1`から` n2`までの行番号に変更します。

1 intst 
    2 1.0 
    3 12.591870 0.000000 0.000000 
    4 0.000000 12.591870 0.000000 
    5 0.000000 0.000000 12.591870 
    6 Ba Zr Al O 
    7 27 26 1 81 
    8 direct 
    9 0.166667 0.166666 0.167762 Ba 
10 0.166666 0.166667 0.832238 Ba #Original line- 11 
... 
... 
59 0.666668 0.666666 0.329117 Zr 
60 0.666665 0.666667 0.670884 Zr 
61 0.666667 0.666667 1.000000 Al 
62 0.166667 0.166667 0.500000 Ba #Original line-10 
63 0.166667 0.999071 0.999999 O 

として表示されるように新しい行を作成することによってline-62の下に移動する必要があり

1 intst 
    2 1.0 
    3 12.591870 0.000000 0.000000 
    4 0.000000 12.591870 0.000000 
    5 0.000000 0.000000 12.591870 
    6 Ba Zr Al O 
    7 27 26 1 81 
    8 direct 
    9 0.166667 0.166666 0.167762 Ba 
10 0.166667 0.166667 0.500000 Ba #Line to be moved 
11 0.166666 0.166667 0.832238 Ba 
... 
... 
60 0.666668 0.666666 0.329117 Zr 
61 0.666665 0.666667 0.670884 Zr 
62 0.666667 0.666667 1.000000 Al #Moved line to be inserted below this line 
63 0.166667 0.999071 0.999999 O 

sed -i.bkp -e '10d' file 

と行を挿入する

sed -i '10i <string>'file1 

しかし、私は

+0

例@lurker "移動" を示唆しています。 –

答えて

3

あなたはこのsed使用することができます行の内容をコピーして別の行に移動するかどうかはわかりません。@Benjaminでコメントを1として

sed '10{h;D}; 62G' file 

を、あなたがすることもできますdを使用してください。

sed '10{h;d}; 62G' file 

インプレイス編集には-i.bakを使用してください。ここで

  • 10 and 62から
  • h行番号 - コピーパターンスペースは、スペースを保持します。これにより、スペースを保持するためにline 10が節約されます。
  • G - パターンスペースにホールドスペースを追加します。これにより、パターンスペースにline 10が追加されます。
  • D - パターンスペースのテキストを最初の改行まで削除します。
+0

オプションh、D、Gの仕組みを教えてください。 – WanderingMind

+0

あなたの答えはあまりにも似ていますが、単純に 'sed '10h; 62G' file'でOPをコピーしたいのですが、移動しないでください。 – SLePort

+0

@Kenavoz、 'h'はパターンスペースからテキストを削除しません。 – sat

2

のawk:

awk -v n1=10 -v n2=62 ' 
    NR == n1 {line=$0; next} 
    {print} 
    NR == n2 {print line} 
' file > file.new 

や由緒あるED(インプレースのファイルを編集します)

ed file <<END_ED 
# move line 10 after line 62 
10m62 
# save and quit 
w 
q 
END_ED 
+0

edコマンドは、それが重要な場合には、さまざまな方法で "片付ける"ことができます。 –

関連する問題