我有一个名为 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问题。看来您的目标是复制这些文件,并且肯定有更好的方法来做到这一点。