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

Ric*_*ano 3 unix awk

到处尝试谷歌搜索,我找不到任何东西.我试图解决这个问题......如何在一行的末尾打印出实际的\n字符,以便在输出文件中输出:

东西东西\东西东西\东西东西\东西东西\n

任何和所有的帮助表示赞赏.

Lix*_*Lix 8

我相信你所要做的就是\n以下列方式逃避冲突:\\n.

这是一个简单的例子:

ll | awk '{ printf "%s\\n\n",$1 }'
Run Code Online (Sandbox Code Playgroud)

这应该打印当前目录中每个文件的权限列,并在每行输入\n后插入一个文字换行符,然后插入一个实际的换行符.

结果应如下所示:

drwxrwxr-x.\n
-rw-rw-r--.\n
-rw-rw-r--.\n
-rwxrwxr-x.\n
-rwxrwxr-x.\n
drwxrwxr-x.\n
drwxrwxr-x.\n
Run Code Online (Sandbox Code Playgroud)

如您所见,\n每行末尾都有一个文字.


如果您不想要任何"真正的"换行符并将所有输出放在一行上,则可以\nprintf语句中删除第二行:

ll | awk '{ printf "%s\\n",$1 }'
Run Code Online (Sandbox Code Playgroud)

这将使您的输出与您在问题中提到的输出非常相似,并\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
Run Code Online (Sandbox Code Playgroud)