linux shell sed命令的问题!
发布网友
发布时间:2022-04-23 03:51
我来回答
共3个回答
热心网友
时间:2023-10-13 21:43
@是使用sed命令的分隔符,可以用“:”、“/”、“-”等很多,这里是用的“@”。
-e:是用sed的时候可以使用多个替换;
-e 's@/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g'
意思:把/tools/lib/ld-linux.so.2全部替换成/lib/ld-linux.so.2
sed命令的格式:
sed -e 's/字符串1/字符串2/g' -e 's/字符串3/字符串4/g'
s:是替换字符串;
g:是全局替换;
下边的两句,不是很明白。
这是编译包到时候出现到吗,要是没有明显报错,就没事。
热心网友
时间:2023-10-13 21:43
@是使用sed命令的分隔符,可以用“:”、“/”、“-”等很多,这里是用的“@”。
-e 's@/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g'
意思:把/tools/lib/ld-linux.so.2全部替换成/lib/ld-linux.so.2
-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
意思:首先找出所有包含*startfile....的行,然后将查到的所有行都替换成/usr/lib
{n;s@.*@/usr/lib/ @}表示 对/\*startfile_prefix_spec:/进行操作n;s@.*@/usr/lib/ @。
n;s@.*@/usr/lib/ @就是循环替换的意思
-e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
同上面意思一致
不知道我表述的明不明白,如果不明白可以发信息给我。
热心网友
时间:2023-10-13 21:44
打酱油一记,帮lz顶下。