我试过到处搜索,但是找不到任何结果。我正在尝试弄清楚...如何打印出实际的 \n 字符,以使其在输出文件中显示为:
stuff stuff stuff \n stuff stuff stuff \n stuff stuff stuff \n stuff stuff stuff \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
\\n
。 - Lix
gsub(/$/, "\\n")
之外,还有什么其他的方法吗?http://ideone.com/p2e7S4 - tripleee