내 파일에 동일한 문자열이 한 번 이상 나타나는 경우가 있습니다. 파일에서 하나 이상의 일치 항목을 검색한 후 다음 줄로 이동하여 해당 줄의 값을 유지하되 파일의 나머지 부분은 그대로 유지하면서 끝에 값을 추가해야 합니다. 이것이 내가 가진 것입니다:
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
경기 후 줄에 추가하십시오 . 이것이 원하는 내용이 아닌 경우 질문을 편집하십시오.