我正在尝试使用 sed 或 awk 来替换 smb 文件中的 5 行,但我不知道如何处理换行符。
答案1
sed 在这方面相当糟糕,因为它一次只操作一行。我见过的唯一合适的技术是这个,它涉及将整个文件存储在 sed 的保持缓冲区中,然后一次性对其进行操作:
sed -n '1h;1!H;${g;s/search/replace/;p;}'
如果可以的话,使用 perl 来完成此操作要容易得多:
perl -0pe 's/search/replace/'
search
可以包含\n
s 来表示换行符