동일한 문자열이 한 번 또는 여러 번 검색되고 다음 줄을 편집합니다.

동일한 문자열이 한 번 또는 여러 번 검색되고 다음 줄을 편집합니다.

내 파일에 동일한 문자열이 한 번 이상 나타나는 경우가 있습니다. 파일에서 하나 이상의 일치 항목을 검색한 후 다음 줄로 이동하여 해당 줄의 값을 유지하되 파일의 나머지 부분은 그대로 유지하면서 끝에 값을 추가해야 합니다. 이것이 내가 가진 것입니다:

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.commandpattern

모델 선 뒤의 다음 선에 명령을 적용하려면 n명령을 사용하여 해당 선을 먼저 진행하십시오.

그런 다음 줄 끝에 추가하려면 s/$/whatever you want to append/( $줄 끝의 경우)를 사용합니다.

이제 이러한 명령을 결합하여 {}주소 지정이 해당 명령과 사용자 모두에게 적합하도록 해야 합니다.

sed '/General Thunderstorm Risk/{n;s/$/, 42/;}' yourfile.txt > out.txt

, 42경기 후 줄에 추가하십시오 . 이것이 원하는 내용이 아닌 경우 질문을 편집하십시오.

관련 정보