grep include /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)
输出:
include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Run Code Online (Sandbox Code Playgroud)
期望的输出:
include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Run Code Online (Sandbox Code Playgroud)
awk '/include/ {$1 = $1; print}' < your-file\nRun Code Online (Sandbox Code Playgroud)\n会那么做。
\n通过将某些内容分配给$1,强制awk通过将字段(默认情况下由空格分隔(至少是空格和制表符,可能其他取决于区域设置和 awk 实现))与OFS(默认情况下是空格)来重建记录。
等价sed的:
sed -E '/include/!d; s/[[:space:]]+/ /g; s/^ //; s/ $//' < your-file\nRun Code Online (Sandbox Code Playgroud)\n[[:space:]]其中[[:blank:]]至少包括空格和制表符;[[:space:]]还包括垂直间距字符\xc2\xb9,如果文件具有 MSDOS CRLF 行结尾,则这在这里可能很有用,因为它将删除行末尾的那些虚假 CR。
\xc2\xb9 如垂直制表符、换页符等不应出现在输入中的换行符、记录处理中不会出现的行分隔符,awk依次处理awk每一行的内容