추천해주신 모든 분들께 감사드립니다.
내 파일:
File1.sh(bash 쉘)
prefix_ud=이름;
path_file=/경로/파일 스크립트;
sed -i "$(grep -n 'uname.*' "$path_file" |tail -1|cut -f1 -d':')a "$prefix_ud" yahoo.com" "$path_file"
sed -i "$(grep -n 'uname.*' "$path_file" |tail -1|cut -f1 -d':')a "$prefix_ud" twitter.com" "$path_file"
파일 2 예상 출력:
text1
text2
uname google.com
uname gmail.com
uname hotmail.com
uname yahoo.com
uname twitter.com
text3
text4
답변1
추악하지만 이것이 OP가 원한 것이라고 생각합니다.
임시 파일을 만들고 각 줄에 "uname"을 추가합니다.
sed 's/^/uname /' file_1 > tmp_file
"uname..."의 마지막 항목을 file_2
변수에 저장합니다.
last=$(awk '/uname.*/{a=$0}END{print a}' file_1)
마지막 발생 뒤에 다음을 추가하십시오.tmp_file
sed -e "/$last/rtmp_file" file_2
산출:
text1
text2
uname google.com
uname gmail.com
uname hotmail.com
uname yahoo.com
uname twitter.com
text3
text4
답변2
귀하의 질문이 예상 결과와 일치하지 않습니다. sed
다음과 같이 처리할 수 있습니다.
sed 's/.*twitter.com/uname & Stuff/;s/.*yahoo.com/uname & Stuff/' file1.txt > file2.txt
&
끝에 추가하고 텍스트 공간에 유의하세요.