Unix 如何在Awk中打印字符串中的换行符

Unix 如何在Awk中打印字符串中的换行符,unix,awk,Unix,Awk,我试着到处搜索,但什么也找不到。我正试图弄明白…如何在一行末尾打印出实际的\n字符,以便在输出文件中输出: 填充\n 填充\n 填充\n 填充\n 非常感谢您的帮助 我相信您所要做的就是用以下方式将\n中的斜杠转义:\\n 下面是一个简单的例子: ll | awk '{ printf "%s\\n\n",$1 }' 这将打印当前目录中每个文件的权限列,并且在每行输入之后,插入一个文字换行符\n,然后插入一个实际的换行符 结果应该如下所示: drwxrwxr-x.\n -rw-rw-r--.\n

我试着到处搜索,但什么也找不到。我正试图弄明白…如何在一行末尾打印出实际的\n字符,以便在输出文件中输出:

填充\n 填充\n 填充\n 填充\n


非常感谢您的帮助

我相信您所要做的就是用以下方式将
\n
中的斜杠转义:
\\n

下面是一个简单的例子:

ll | awk '{ printf "%s\\n\n",$1 }'
这将打印当前目录中每个文件的权限列,并且在每行输入之后,插入一个文字换行符
\n
,然后插入一个实际的换行符

结果应该如下所示:

drwxrwxr-x.\n
-rw-rw-r--.\n
-rw-rw-r--.\n
-rwxrwxr-x.\n
-rwxrwxr-x.\n
drwxrwxr-x.\n
drwxrwxr-x.\n
如您所见,每行末尾都有一个文本
\n


如果不需要任何“真实”换行符,并且所有输出都在一行上,则可以从
printf
语句中删除第二个
\n

ll | awk '{ printf "%s\\n",$1 }'
这将使您的输出与您在问题中提到的非常相似,每个输入行都附加了一个文本
\n

\n-rwxrwxr-x.\ndrwxrwxr-x.\n-rw-rw-r--.\n-rwxrwxr-x.\ndrwxrwxr-x.\n-rw-rw-r--.\ndrwxrwxr-x.\n-rw-rw-r--.\n

显示您当前用于生成的代码,可能是使用不当、打字错误等。除了明显的
gsub(/$/,“\\n”)
?非常抱歉…我将编辑此内容,但我应该重新措辞,使其在每行末尾显示。在这方面你会有什么帮助吗?你会做完全相同的事情-通过添加一个额外的斜杠来转义换行符:
\\n
。看看我的编辑-也许这就是你要找的。是的!成功了!非常感谢你@user3521858-非常欢迎您!快乐的脚本!