私のファイルに同じ文字列が複数回表示されることがあります。ファイルから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
答え1
sed
あなたの特別な行に何かを適用するには住所彼らは。/pattern/command
command
pattern
モデル線の後ろの次の行にコマンドを適用するには、n
コマンドを使用して最初に先行します。
次に、行末に追加するにはs/$/whatever you want to append/
($
行末の場合)を使用します。
これで、これらのコマンドを組み合わせて、{}
アドレス指定がそのコマンドとユーザーの両方に適しているようにする必要があります。
sed '/General Thunderstorm Risk/{n;s/$/, 42/;}' yourfile.txt > out.txt
, 42
試合後に行に追加してください。これが望むものではない場合は、質問を編集してください。