Din*_*ngo 7 sed text-processing text text-formatting
我有很多小诗要编辑,如下所示:
\nIo avevo due sorelle,\nuna bionda e l\xe2\x80\x99altra mora,\ntutte e due leggiadre e belle\ne gentil come l\xe2\x80\x99aurora.\nma la bionda mi \xc3\xa8 sparita,\nse ne \xc3\xa8 andata all\xe2\x80\x99altra vita.\nmi hanno detto che lass\xc3\xb9\npi\xc3\xb9 risplende il suo bel viso\ndove \xc3\xa8 gioia ed \xc3\xa8 sorriso\nma non torner\xc3\xa0 mai pi\xc3\xb9.\ne la mora sta lontana,\nnella terra pascoliana.\ncolgo e bacio il primo fiore:\nil pensier quel bacio porta\nsu la viva e su la morta,\ntutte e due lo stesso amore.\n
Run Code Online (Sandbox Code Playgroud)\n意大利语语法规则规定,当一节经文在前一节经文中有一个句号之后开始时,第一个字母要大写。应该是这样(例如,请参见第 5 行句点后的大写字母)
\nIo avevo due sorelle,\nuna bionda e l\xe2\x80\x99altra mora,\ntutte e due leggiadre e belle\ne gentil come l\xe2\x80\x99aurora.\nMa la bionda mi \xc3\xa8 sparita,\nse ne \xc3\xa8 andata all\xe2\x80\x99altra vita.\nMi hanno detto che lass\xc3\xb9\npi\xc3\xb9 risplende il suo bel viso\ndove \xc3\xa8 gioia ed \xc3\xa8 sorriso\nma non torner\xc3\xa0 mai pi\xc3\xb9.\nE la mora sta lontana,\nnella terra pascoliana.\nColgo e bacio il primo fiore:\nil pensier quel bacio porta\nsu la viva e su la morta,\ntutte e due lo stesso amore.\n
Run Code Online (Sandbox Code Playgroud)\n我在使用 sed 执行此操作时遇到麻烦,如何解决?你知道比 sed 更正确的方法,我也很感兴趣
\n使用 Perl:
perl -00 -pe 's/\.\n./\U$&/g' file
Run Code Online (Sandbox Code Playgroud)
这一次读取文件的一个段落(段落由至少一个空行分隔),并将点和换行符之后出现的任何字符大写。
printf '%s\n' 'g/\.$/+1s/./\u&/' '%p' | ex file
Run Code Online (Sandbox Code Playgroud)
g/\.$/
选择所有带有句点的行。
+1s
将下一行上的以下替换命令应用于每个选定项。
\u
替换槽中的下一个字符大写,并且&
是“正则表达式匹配的内容”的元字符。
%p
打印所有结果行。
该命令在标准输出中输出预期结果。要实际编辑文件,请使用“写入并退出”命令:
printf '%s\n' 'g/\.$/+1s/./\u&/' x | ex file
Run Code Online (Sandbox Code Playgroud)
正则表达式/\.$/
不会捕获最后一个句点后带有空格的行。要解决这种情况,请/\. *$/
改用。
在每个 Unix 机器上的任何 shell 中使用任何 awk:
\n$ awk 'prev ~ /\\.$/{$0=toupper(substr($0,1,1)) substr($0,2)} {prev=$0} 1' file\nIo avevo due sorelle,\nuna bionda e l\xe2\x80\x99altra mora,\ntutte e due leggiadre e belle\ne gentil come l\xe2\x80\x99aurora.\nMa la bionda mi \xc3\xa8 sparita,\nse ne \xc3\xa8 andata all\xe2\x80\x99altra vita.\nMi hanno detto che lass\xc3\xb9\npi\xc3\xb9 risplende il suo bel viso\ndove \xc3\xa8 gioia ed \xc3\xa8 sorriso\nma non torner\xc3\xa0 mai pi\xc3\xb9.\nE la mora sta lontana,\nnella terra pascoliana.\nColgo e bacio il primo fiore:\nil pensier quel bacio porta\nsu la viva e su la morta,\ntutte e due lo stesso amore.\n
Run Code Online (Sandbox Code Playgroud)\n