ファイルの特定の行にテキストを挿入する

ファイルの特定の行にテキストを挿入する

ファイルの特定の行にテキストを挿入する方法は?使用できる最も簡単な方法は何ですか? ( bash,,, sed? awk)

私がしたいことはおそらく簡単ですが、どこから始めるべきかわかりません。これを手動で実行するには時間がかかりすぎます(後でExcel / Calcで使用するために変更する必要があるファイルが多い)。

以下は私の入力ファイルの例です。

4.06
4.05
5.04
4.06
34.50
56.06
45.33
36.44

私は次のことをしたいと思います(1行と5行の前にテキストが挿入されています)。

Exp1    
4.06
4.05
5.04
4.06
Exp2
34.50
56.06
45.33
36.44

どうすればいいですか?

ベストアンサー1

awk 'NR==1{print "Exp1"}NR==5{print "Exp2"}1' file

1つの結末はを意味します{print}

sed '1i\
Exp1
5i\
Exp2
' file

これをより多くの数に拡張するのはawk簡単です。

awk 'NR%4==1{print "Exp"++i}1' file

数値が異なる場合は、sedがその作業に適したツールではないとします。可能ですが、きれいではありません。


学問的好奇心で、次のようにsedにあります。

sed '1{ 
    h
    s/^.*$/Exp0/
    x   
}
x
s/^4//
s/^3/4/
s/^2/3/
s/^1/2/
/^E/ { 
    s/$/|/
    :x
    s/0|/1/
    s/1|/2/
    s/2|/3/
    s/3|/4/
    s/4|/5/
    s/5|/6/
    s/6|/7/
    s/7|/8/
    s/8|/9/
    s/9|/|0/
    tx
    s/^Exp|/Exp1/
    p
    s/^/1/
}
x' file

おすすめ記事