我有一些CSV文件,我想用grep解析(或從終端獲取其他函數)以提取一些信息。 他們以這種形式:如何在grep獲得的每行末尾添加一個值
* Comment 1
* Comment line 2 explaining what the following numbers mean
1000000 ; 3208105 ; 0.18 ; 0.45 ; 0.00015 ; 0.1485 ; 0.03 ; 1 ; 1 ; 5 ; 477003 ;
* Comment 3
* Comment 4 explaining the meaning of the following lines
* Comment 5
0; 706520; p; 30.4983
1; 20859; p; 57.8
2; 192814; p; 111.842
3; 344542; p; 130.543
4; 54605; p; 131.598
5; 64746; d; 140.898
6; 442082; p; 214.11
7; 546701; p; 249.167
8; 298394; p; 305.034
9; 81188; p; 305.034
.......
在每個文件中可能有至多一個線,其中第三場等於d
而不是p
。所以要麼有一行包含d
或者沒有。
我有很多像這樣的文件,我想要做的是從每個文件中提取包含字母d
的行(如果存在),並在此行後追加第一個非註釋行的最後一個參數,在這個例子中是47703
。
到目前爲止,我設法分開提取我需要的線。
有了這個我可以提取從每一個文件I具有包含d
每一行:
grep -h -E ' d;' *.csv > output.csv
而與此我可以從像在例的文件中提取準確數量47703
grep -v -e "^*" -e " p; " -e " d; " example_file.csv | cut -d \; -f 11
但我不知道如何把這兩個放在一起。
最終的輸出,我想從一開始的例子來獲得是這樣的一行:
5; 64746; d; 140.898; 47703
,我想有這樣一行在當前目錄中的所有CSV文件。
有沒有辦法做到這一點?
請加樣品輸入所需輸出爲輸入您的問題樣本。 – Cyrus
我做到了。輸入是第一個例子,輸出是最後一行 – jackscorrow