评论:我正在使用.tex
(TeX) 文件。
在 TeX 代码中,换行不会影响输出。要生成新段落,我们必须使用该\par
命令。
一些 TeX 编辑器将空行解释为\par
.所以下面的代码
line one here
continues here and so on
New paragraph here
产生输出
第一行在这里继续,依此类推
新段落在这里
由于某些编辑器可以自动换行,我喜欢用尽可能少的 RETURN 来编写代码。当我们想要处理行号时,这会更好。
请参阅屏幕截图:
我想删除行尾但保留空白行即使它们只包含空格。完成该过程后,我希望我的代码如下:
请注意,新代码仅包含 3 行。
我尝试使用tr
但没有成功。
编辑:在测试了 @lcd047 建议的代码后,我注意到当该行n
包含%
(%
用于在 TeX 中进行注释,并且该行中后面的所有内容都将被忽略) 时,会出现一些问题。
所以,我想我应该添加要求:如果行n
包含%
不要n
与粘合n-1
,也不n+1
与粘合n
。
答案1
也许是这样的:
awk '!NF || /%/ {printf "%s", (NR > 1 ? "\n" : "") $0; sep = "\n"; next}
{printf "%s", sep $0; sep = " "}
END {if (NR) print ""}' < file.in > file.out
答案2
尝试这个:
perl -lpe 'BEGIN{ $/= $\ = "\n\n" } s/^[^%]+?\K\n/ /gmo' <file_old.tex >file_new.tex
也可以保留以命令开头的行:
perl -lpe 'BEGIN{ $/= $\ = "\n\n" } s/^\s*[^\s\\%][^%]*?\K\n/ /gmo' <file_old.tex >file_new.tex
但请注意,一些审阅您论文的人会因为对这一举动的热情而讨厌您。