我有幾百行格式化爲這樣一個文件:行排序按字母順序使用AWK和/或sed的
#blah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/xyz(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#xblah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/hkf(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#ablah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/abc/.*(|/)$ http://www.blah.com/404.html [R=301,L,NC]
我想創造AWK腳本/ sed的使用按字母順序排列文件每組文本的第三行中的第二個參數。在這個文件的情況下,它是「abc」,「hkf」或「xyz」,它可以是任何東西 - 它們是在這個apache重定向文件中創建的重定向。
我計算過,我想要做的是:
- 串連使用排序-k3,3
- 每組三線成一條線與
- 各行之間的分隔符排序線然後重新組裝3線與分離空白行
- 寫構建到文件
我預計產量將看起來像這樣:
#ablah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/abc/.*(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#xblah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/hkf(|/)$ http://www.blah.com/404.html [R=301,L,NC]
#blah
RewriteCond %{HTTP_HOST} www.blah.com [NC]
RewriteRule ^/xyz(|/)$ http://www.blah.com/404.html [R=301,L,NC]
這是否有意義?有一個更好的方法嗎?
p.s.我的意圖是使腳本可移植,以便可以在此結構的多個文件上使用它。在提出解決問題的代碼時,請儘可能詳細說明問題,以便像我這樣的排名新手開始瞭解如何有效地解決此問題,並能夠擴展最終結果。
任何和所有幫助非常感謝。
什麼是從上面輸入預期的輸出文件? – anubhava
anubhava,我編輯了我的OP,我認爲它現在更有意義。 – user3043123
sed不適合排序,所以awk將成爲您的工具 – NeronLeVelu