1. 程式人生 > >以空格作為分隔符時 cut和awk處理的差異

以空格作為分隔符時 cut和awk處理的差異

[[email protected] programming]$ cat tab_space.txt |cut -d ' ' -f 1
this
this注意,兩個單引號之間可確實要有一個空格哦,不能偷懶。
而且,你只能在-d後面設定一個空格,可不許設定多個空格,因為cut只允許間隔符是一個字元。

ls -lc | cut -d ' '   -s -f 8-

10 cut有哪些缺陷和不足?

猜出來了吧?對,就是在處理多空格時。
如果檔案裡面的某些域是由若干個空格來間隔的,那麼用cut就有點麻煩了,因為cut只擅長處理“以一個字元間隔”的文字內容

/* 參考:

*/


例子:
[[email protected]

qt-everywhere-opensource-src-4.7.4 12:22:25]$ls -lc | awk '{print $6,$7,$8,$9}' | sort > /tmp/ls_lc_sorted.txt
[[email protected] qt-everywhere-opensource-src-4.7.4 12:22:46]$ls --time=c -lrth | awk '{print $6,$7,$8,$9}' > /tmp/ls_time-c_lrth.txt


GOOGLE:  linux awk printf field till line end  $NF;

awk中只能使用for迴圈!:

You could use a for-loop to loop through printing fields $2 through $NF (built-in variable that represents the number of fields on the line).

Edit: Since "print" appends a newline, you'll want to buffer the results: awk '{out=""; for(i=2;i<=NF;i++){out=$out" "$i}; print $out}'

 Alternatively, use printf:   awk 'for(i=2;i<=NF;i++){printf "%s ", $i}; printf "\n"}'

相關推薦

空格作為分隔符 cutawk處理差異

[[email protected] programming]$ cat tab_space.txt |cut -d ' ' -f 1 this this注意,兩個單引號之間可確實要有一個空格哦,不能偷懶。 而且,你只能在-d後面設定一個空格,可不許設定多個空格

精簡程式碼:Python的split方法函式可以分割字串成列表,預設是空格作為分隔符sep來分割字串。

 Python的split方法函式可以分割字串成列表,預設是以空格作為分隔符sep來分割字串。 In [1]: s = "www jeapedu com" In [2]: print s.split()   ['www', 'jeapedu', 'com']  

用cin輸入變數的值,如何逗號作為分隔符

char *names,*numbers;names=new char[20];char c;numbers=new char[20];cin.getline(names,15,',');//names是指向字串的指標,15代表了能夠讀入的輸入字元的個 //數包括陣列最後的

用一個函式實現將一行字串中最短的單詞輸出。此行字串從主函式傳遞給該函式。假設字串中包含的單詞以空格作為分隔符號,例如”Asia Games 2010 is held in GuangZhou.”,其中最短的單詞是”is””in”。

山大 23:57:13 /* 輸入完單詞後不用再加空格!如果是兩個單詞一樣短還不能實現*/ #include<stdio.h>#include<string.h>void main(){int f(char str[],char str1[],int

如何使用逗號 (,) 作為分隔符 sscanf示例fscanf示例

一、sscanf示例/* The following sample illustrates the use of brackets and the caret (^) with sscanf(). Compile options needed: none*/ #inc

sed、cutawk命令的使用

 sed命令的使用 語法 sed[-n] ‘editing command’ [file…] sed[-n] –e ‘editing command’ [file…] sed[-n] –

C++讀取空格作為資料區分標記,回車為行標記的txt檔案到一個整數陣列(字串妙用)

     這次讀取的就是上一篇中的original檔案的每一行到一個整數陣列中。      使用getline(預設吧回車符endl作為行標記)分別把每一行讀入到一個字串陣列,在這個字元數字最後加上/0構成一個字串;      使用strtok函式把每行組成的字串以空格為標記

Java字串使用Split豎線作為分隔符

今天用到了Java中的Split函式,要以“|”作為分割符,當輸入豎線時,發現出錯,這個問題應該很久前就遇到過,不過太長時間就給忘了! 網上一搜,就找到了答案,這是因為split裡面有兩個引數,其中

java中的String.split() 中“|”作為分隔符的問題陣列長度問題

我們把一個字串轉化成一個數組的時候都是用到了String.split()這個函式。 可是有一些問題我們需要注意。 以下是我碰到的問題,總結了一下。 1,“|”作為分隔符     public static void main(String[] args) {   

使用sedawk將文件中的非雙引號中的逗號分隔符替換為豎線

txt 豎線 $0 文件 文件中 sed和awk gin int 引號 原始文件:$ vi 5.txt"2018-08-13","aa,bb,cc,dd",zwfer,18,"qw,qe,r,ds,fd",888&

Java 輸入一行空格分隔字元作為輸入資料轉存為陣列形式並輸出

用java寫一些演算法題目的時候需要輸入一些資料,像C或者CPP都可以有專用的輸入函式進行輸入,在Java裡需要稍微麻煩一些,具體程式碼如下: import java.util.Scanner; public class Main{ public static void main(

shell if判斷(曾經被一個字串相等的判斷糾結半小時,最後只是if後少了個空格!) awk引用外部變數判斷

一、if判斷 數字:   $A=12   $B=15   if(("$A"<"$B"))   if(("$A"=="$B")) 字串:   $A="HELLO"   $B="WORLD"   if [ "$A" = "FACT_LOGIN_USER" ]   if [ "$A" =

button、inputa標籤作為按鈕的區別

我們都知道,button、input、a標籤都可以加上一定的樣式之後成為外觀上沒有太大差別的按鈕,那麼,這三個標籤都適合在什麼場景下作為按鈕使用呢? <button>提交</but

如何在nodevueaxios作為互動的專案中使用cookie或者set-cookie

    最近在用vue+node+mysql重構專案,前端用的vue+typescript寫的,後端用的express框架,沒有用太多的外掛,用原始擼的。     專案地址https://github.com/Vitaminaq/node-mysql&

Android Toolbar作為ActionBar更改TitleOverflow Icon的顏色

想使用Toolbar來作為Android應用程式的ActionBar。 Style.xml如下 <resources> <!-- Base application theme. --> <style name="AppThem

awk 中 用“||“ 作為分隔符的方法

1). awk的多字元分隔符:  awk通常只支援單字元的分隔符,但gawk 支援多字元作為分隔符; 在linux下,awk是gawk的的符號連結檔案,因此支援多字元作為分隔符; 2). awk 表示分隔符的方法:      a). awk的選項: -F ‘分割字元’  

Cut用法 awk的相關區別

-b :以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。 -c :以字元為單位進行分割。 -d :自定義分隔符,預設為製表符。 -f  :與-d一起使用,指定顯示哪個區域。 -n :取消分割多位元組字元。僅和 -b 標誌一起使用。如果

Scanner的enter空格作為結束符號的問題

import java.util.Scanner; public class Scaner_1 {     public static void main(String[] args) {         Scanner sc=new Scanner(System.in);

Java 字串分割函式 split() 在分割“.”為分隔符出現的問題

Java 中字串的操作是很重要的一個環節,java 自帶了很多的關於字串的操作。 其中 spilt() 作為分割函式,用到的情況很多。 但是 是否遇到當以“.” 作為分割符時,不能分割的情況呢。我想應

HashMap中使用自定義類作為Key,為何要重寫HashCodeEquals方法

ide string https object 避免 equals方法 args sys 添加 之前一直不是很理解為什麽要重寫HashCode和Equals方法,才只能作為鍵值存儲在HashMap中。通過下文,可以一探究竟。 首先,如果我們直接用以下的Person類