谁能告诉我这些 sed 命令的作用以及我如何手动执行/插入它们。
sed -i  '/^__func__.*__syncthreads/ {
i\
#if !defined(__CUDA__)
N
N
N
N
a\
#endif
}' $device_functions.h
sed -i  '/^#define __device__ / {
i\
#if !defined(__CUDA__)
N
N
N
N
N
N
N
N
N
N
N
a\
#endif
}' $host_defines.h
谁能告诉我这些 sed 命令的作用以及我如何手动执行/插入它们。
sed -i  '/^__func__.*__syncthreads/ {
i\
#if !defined(__CUDA__)
N
N
N
N
a\
#endif
}' $device_functions.h
sed -i  '/^#define __device__ / {
i\
#if !defined(__CUDA__)
N
N
N
N
N
N
N
N
N
N
N
a\
#endif
}' $host_defines.h
这就是程序的作用:
^__func__.*__syncthreads将该行和接下来的四行(四行N)换行。#if !defined(__CUDA__)#endifi\a\^#define __device__ 的行并将该行和接下来的 11 行包装在#if !defined(__CUDA__)and中#endif。这是在 和 指定的文件上$host_defines.h分别$device_functions.h以就地方式 ( -i) 完成的,因此文件的内容被更改。