참조 내 참조 this question 첫 번째 및 두 번째 파일에서 일치하는 줄 식별자를 얻은 후 첫 번째 파일의 줄을 두 번째 file.For에 대한 줄로 바꾸려면 아래 SED를 사용하고 있습니다. 그러나 Sed는 새 파일에서 해당 행을 대체합니다. 임시 파일없이 동일한 파일에서 업데이트를 수행하는 방법 (매우 큰 파일이기 때문에)Unix 쉘 스크립팅에서 SED로 동일한 파일의 행을 바꾸는 방법은 무엇입니까?
#!/bin/ksh
while read line
do
var=`echo $line|cut -c 3-25`
while read i
do
var1=`echo $i|cut -c 3-25`
if [ $var == $var1 ];
then
sed -i s/$line/$i/ t1
else
echo "not matched"
fi
done < t2
done < t1
-i
옵션을 지정하지 않아도 결과가 표시되지 않습니다. 도와주세요.
편집 : 그렇지 않으면 임시 파일이나 스크립팅 언어없이 (덜 선호하는) 다른 최적의 방법을 제안 해주십시오.
입력 파일을 표시하고 최종 출력을 나타내는 경우 – ghostdog74
'거대한'이란 무엇을 의미합니까? 각 파일이 파일 시스템의 45 %를 사용하고 있고 사용할 다른 파일 시스템이 없다면 임시 파일이 필요합니다. 파일이 너무 크다면 더 큰 디스크를 구입하는 것이 좋습니다. 저장 비용이 저렴합니다. –