1. 程式人生 > >使用sort和awk來實現對檔案塊進行排序

使用sort和awk來實現對檔案塊進行排序

professor.db中每個檔案塊記錄了一位教授的資訊,由三行組成:第1行是姓名,第2行是學校名,第3行是學校所處的城市和國家.如果需要根據姓名對檔案塊進行排序,僅使用sort命令是難以實現的,我們通過結合使用sort和awk來實現這一功能:

cat professor.db:

J Luo

Southeast University
Nanjing,China

Y Zhang
Victory University
Melbourne, Australia

D Hou
Beijing University
Beijing,China

B Liu
Shanghai Jiaotong University
Shanghai,China

C Lin
University of Toronto
Toronto,Canada

=================================================

cat PROFESSOR.db | awk -v RS="" '{gsub("\n","@");print}'
J [email protected] [email protected],China
Y [email protected] [email protected], Australia
D [email protected] [email protected],China
B [email protected] Jiaotong Universit[email protected],China
C [email protected]

of [email protected],Canada

===================================================
cat PROFESSOR.db | awk -v RS="" '{gsub("\n","@");print}' | sort
B [email protected] Jiaotong [email protected],China
C [email protected] of [email protected],Canada
D [email protected] [email protected]

,China
J [email protected] [email protected],China
Y [email protected] [email protected], Australia
=====================================================
cat PROFESSOR.db | awk -v RS="" '{gsub("\n","@");print}' | sort |awk -v ORS="\n\n" '{gsub("@","\n");print}'
B Liu
Shanghai Jiaotong University
Shanghai,China

C Lin
University of Toronto
Toronto,Canada

D Hou
Beijing University
Beijing,China

J Luo
Southeast University
Nanjing,China

Y Zhang
Victory University
Melbourne, Australia


相關推薦

使用sortawk實現檔案進行排序

professor.db中每個檔案塊記錄了一位教授的資訊,由三行組成:第1行是姓名,第2行是學校名,第3行是學校所處的城市和國家.如果需要根據姓名對檔案塊進行排序,僅使用sort命令是難以實現的,我們通過結合使用sort和awk來實現這一功能: cat professor.

Android利用泛型反射實現資料庫的操作--SqlHelper

利用泛型和反射來實現對資料庫的操作 1.對資料庫操作的介面類 package com.dou361.dal; import java.util.List; /** * @author jjdxm * http://www.dou361.com * http:/

C語言實現檔案內容進行修改

專案中需要實現對檔案內容進行修改,所以有了以下的測試程式,其中遇到了很多問題,在這一一記錄下來。 其實實現原理很簡單,首先是要實現定位到所需要的欄位的那一行,之後再對指定欄位進行修改。在我接觸了shell程式設計後,覺得shell程式設計會很容易實現(網上說可以用sed命令

【轉載】C#中使用OrderByThenBy等方法List集合進行排序

derby 轉載 排序。 sha esc ews 個人 類的定義 orderby 在C#的List操作中,針對List對象集合的排序我們可以使用OrderBy、OrderByDescending、ThenBy、ThenByDescending等方法按照特定的對象屬性進行排序

使用xUtils3RandomAccessFile實現檔案的分片上傳

     首先,想使用xUtils3需要先做好相應的配置,這裡就不詳細說了,詳細http://blog.csdn.net/a1002450926/article/details/50341173      在這裡我自己封裝了一個上傳檔案的方法,如下:       //檔案上

java中怎麼將一個檔案內容寫入到另一個檔案,這裡分別使用ionio實現

一:使用io來實現將一個檔案內容寫入到另一個檔案 需要兩個檔案流,檔案輸入流和檔案輸出流,中間還需要一個作為記憶體中的輔助空間(類似於裝東西的小車),我們可以使用一個位元組陣列。 迴圈使用小車,從倉庫(源頭)運貨到商場(目的地)。 package aboutIO; import jav

QTableView中使用Delegate方式實現特定列的文本進行換行

dwr raw pan 文本 detail ring -s dem 代碼 問題:由於表格的一個列中,有個別文本過長,默認情況下,QTableView不支持對某列的文本換行,所以需要通過Delegate方式來實現這樣的效果 頭文件的Delegate 1 #pragma o

第十三章 文本進行排序、單一重復操作:sort命令、uniq命令

對文本進行排序、單一和重復操作 sort命令 uniq命令 第十三章 對文本進行排序、單一和重復操作:sort命令、uniq命令 sort命令 名字解釋 sort命令 它將文件進行排序,並將排序結果標準輸出。sort命令即可以從特定的文件,也可以從stdin中獲取輸入。 語法 sort (選項)

通過jQueryC#分別實現.NET Core Web Api的訪問以及文件上傳

補充 param 詳細 ace lin col mage exp n) 準備工作:    建立.NET Core Web Api項目    新建一個用於Api請求的UserInfo類 public class UserInfo { publ

采用什麽樣的策略方法實現系統緩存?

服務器 耗時 緩存服務器 time 緩存策略 自定義緩存 情況下 直接 集群 在ASP.NET 中緩存有頁面緩存,數據源緩存,和一些自己定義的緩存! 對於那些整個頁面不經常變化的我們可以使用頁面緩存,而對於那些執行非常耗時的SQL 語句並且數據的及時性要求不高的我們可以使用

採用什麼樣的策略方法實現系統快取?

在ASP.NET 中快取有頁面快取,資料來源快取,和一些自己定義的快取! 對於那些整個頁面不經常變化的我們可以使用頁面快取,而對於那些執行非常耗時的SQL 語句並且資料的及時性要求不高的我們可以使用資料來源快取。 對於頁面快取、資料來源快取等都不滿足要求的情況下采用直接操作HttpRuntime.Cach

idea使用SpringBootSpringMybatis實現增刪改查

需求: 使用新SSM來實現增刪改查 步驟 第一步:看最終包結構 糾正:資料庫連線池部分還有整合mybatis和springboot 這裡主要是匯入依賴的jar包 第二步:配置pom.xml 導包springBoot支援jdk1.8

使用JWT實現API的授權訪問

目錄 什麼是JWT JWT(JSON Web Token)是一個開放標準(RFC 7519),它定義了一種緊湊且獨立的方式,可以在各個系統之間用JSON作為物件安全地傳輸資訊,並且可以保證所傳輸的資訊不會被篡改。 JWT通常有兩種應用場景: 授權。這是最常見的JWT使用場景。一旦使用者登入,每個後續請求

Spring MVC 通過 @PropertySource@Value 讀取配置檔案

Spring MVC 通過 @PropertySource和@Value 來讀取配置檔案 在這篇文章中,我們會利用Spring的@PropertySource和@Value兩個註解從配置檔案properties中讀取值。先來段java程式碼: @Component @PropertyS

AJAX:基於jsxml實現非同步請求

要談AJAX,就不得不提同步與非同步的概念了 同步互動:使用者傳送一個請求,在收到伺服器的應答之前,不可以做任何操作。並且在收到應答後,會重新整理整個頁面。在網 絡不好的情況下使用者體驗不好。非同步互動:使用者傳送一個請求,在收到伺服器的應答之前,可以向伺服器傳送新的請求。

通過匿名內部類實現檔案的過濾

使用FileFileFilter匿名內部類實現對檔案的過濾: package com.blueZhangTest; import java.io.File; import java.io.FileF

利用htmlunitjsoup實現爬取js的動態網頁實踐(執行js)

更新,這就尷尬了,這篇文章部落格閱讀文章最多,但是被踩得也最多。 爬取思路: 所謂動態,就是通過請求後臺,可以動態的改變相應的html頁面,頁面並不是一開始就全部展現出來的。 大部分操作都是通過請求完成的,一次請求,一次返回。而在大多數網頁中請求往往都被開發者隱藏在了js程

Linux下程式(C語言)實現檔案的複製

目標: 使用系統呼叫實現cp命令。 原理: 使用系統呼叫open開啟檔案,使用read從檔案讀資料,使用write向檔案寫資料。 傳給可執行程式的引數個數存放在main函式的argc中,引數首地址存放在指標陣列argv中。 我的程式碼: #include <stdio.h&

LZ4演算法實現檔案目錄的壓縮

我使用LZ4演算法實現了對檔案目錄的壓縮,方法就是將每個檔案都壓縮成一個LZ4格式,然後記錄檔名字和長度,再將這些檔案拼成一個大檔案,但是速度比較慢。因為產生了中間檔案。(也可以先拼接成一個大檔案,然後再使用LZ4壓縮。後面試一下。)我去問LZ4研發團隊,他們給出了在windows和Linux上面壓

使用tokenSpringMVC實現安全的RESTFul介面

首先寫一個Controller,專門用於獲取token的 @Autowiredprivate UserService userService; @RequestMapping(value = "/token", method = RequestMethod.POST)@Re