다음 내용이 포함된 b.txt라는 파일이 있습니다.
libiomp5.so
libmkl_avx.so
libmkl_core.so
libmkl_def.so
libmkl_gf_ilp64.so
libmkl_gf_lp64.so
libmkl_gnu_thread.so
다음 문자열에 접두사를 추가하고 싶습니다.
cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/
그리고 다음 문자열 접미사
/home/oracle/staging/enterpriseR/old_libs
결국엔 이렇게 보여야지
cp /home/oracle/staging/enterpriseR/old_libs/libiomp5.so /home/oracle/staging/enterpriseR/old_libs
다음을 시도했지만 오류가 발생합니다.
ls | grep *.so | sed 's/.*/cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/&/home/oracle/staging/enterpriseR/old_libs'
파일의 일치하는 문자열에 관계없이 (접두사/접미사)를 추가해야 합니까?
답변1
사용 gawk
:
gawk -i inplace '{print "cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/"$1,"/home/oracle/staging/enterpriseR/old_libs"}' input
그리고 awk
:
awk '{print "cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/"$1,"/home/oracle/staging/enterpriseR/old_libs"}' input > output
mv output input
하지만 내 생각에 이것은XY 문제. 귀하의 목표는 이러한 파일을 복사하는 것으로 보이며 이를 수행하는 더 좋은 방법이 있어야 합니다.