同じ文字列が1回または複数回出現することがあるファイルがあります。ファイル内の1つ以上のオカレンスを検索し、次の行に移動してその行の値を保持する必要がありますが、ファイルの残りの部分はそのままにして、最後に値を追加します。これが私が持っているものです:
Line: 3, 0, "General Thunderstorm Risk"
37.74, -87.17
36.22, -85.50
34.80, -85.41
34.01, -85.72
33.14, -86.64
32.45, -88.05
31.88, -89.68
31.38, -91.39
Line: 3, 0, "General Thunderstorm Risk"
29.04, -94.27
29.74, -95.99
30.91, -98.31
31.68, -99.14
32.45, -98.94
33.58, -97.73
35.11, -96.96
36.63, -96.57
if grep "General Thunderstorm Risk" d1.txt; then
echo "General Thunderstorm Risk Detected"
POLYGON=`cat d1.txt | awk '/Line: 4, 0, \"General Thunderstorm Risk\"/{getline; print}'`
cat d1.txt | sed -e 's/Line: 4, 0, \"General Thunderstorm Risk\"/Polygon:/g' | sed -e "s/$POLYGON/$POLYGON, 0, 176, 80, 40/g" > day1
_colored.txt
fi
の特別な行に何かを適用するにはsed
、を含む行に適用するように、それらに対処します。/pattern/command
command
pattern
パターン行の次の行にコマンドを適用する場合は、最初にn
コマンドを使用して行を進めます。
その後、ライン、使用の末尾に追加するs/$/whatever you want to append/
($
行末の略)。
次に、これらのコマンドをと組み合わせる必要があります{}
。これにより、アドレス指定は両方のコマンドで有効になります。
sed '/General Thunderstorm Risk/{n;s/$/, 42/;}' yourfile.txt > out.txt
, 42
試合後に行に追加します。それがあなたが探しているものでない場合は、あなたの質問を編集してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加