このファイルがあります。
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
awkを使用してパターンの前後に行を追加したいと思います127.0.0.1
。パターンと行は bash 変数です。
#!/bin/bash
file="test.txt"
pattern='127.0.0.1'
line='127.0.1.1 cent.centurian.com centurian'
awk -vpattern="$pattern" -vline="$line" '/pattern/{print;print line;next}1' "$file"
動作しません...
ベストアンサー1
sed
より簡単です:
sed "/$pattern/a\
$line" "$file"
出力:
127.0.0.1 localhost
127.0.1.1 cent.centurian.com centurian
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
牛に似た一種の栄養 sed
上記の1行バージョンが許可されています。
sed $file -e "/$pattern/a $line"
...そして出力$line
今後 $pattern
,変化a
(未定)にi
(入れる):
sed $file -e "/$pattern/i $line"