[英]Linux: concatenate two substrings to a new line from infile read with cat
我有一個 infile,讓我們說:
01;Masters;Robin;Atlanta;38
02;Jarau;Jennifer;Washington;29
03;Clavell;James;New York;78
...
我想創建一個如下所示的輸出:
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
但我不會使用 'while read in; 做 ...; done' 循環,因為讀取較大的文件非常非常慢。
我很想有一個“貓”的解決方案,如下所示:
cat infile | echo $3" "$2", "$4 >> staff.list
(我讀過 $0、$1、$2 是輸入參數...)
cat 是否有解決方案,可能與awk或cut結合使用?
先感謝您,
-Linuxfluesterer
$ awk '{printf "%s %s, %s\n", $3, $2, $5}' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
或者
$ awk '{print $3, $2 ",", $5}' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
sed
沒有那么漂亮,但您也可以這樣做:
$ v='\([^;]*\)'
$ sed -e "s/$v;$v;$v;$v;$v/\3 \2, \5/" infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
當然不需要cat
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.