我想: 1)從文件中提取一個整數N,該文件由特定的關鍵短語(例如, '無行' 另一個特定短語後 2)grep的N行,說: '從這裏開始',即:grep從文件中抽出n行,n從同一文件中提取
輸入文件
no of lines 8
.....
start from here
0.6250000000 1 O 1
0.8750000000 1 O 2
0.1250000000 1 O 3
0.3750000000 1 O 4
0.6250000000 1 O 5
0.8750000000 1 O 6
0.1250000000 1 O 7
0.3750000000 1 O 8
.....
輸出:
start from here
0.6250000000 1 O 1
0.8750000000 1 O 2
0.1250000000 1 O 3
0.3750000000 1 O 4
0.6250000000 1 O 5
0.8750000000 1 O 6
0.1250000000 1 O 7
0.3750000000 1 O 8
思想像這樣的事情會做:
N=`grep 'no of lines' file| tr -d A-Za-z' '`
grep -A $N 'start from here'
但顯然grep不允許以這種方式傳遞參數。
感謝您的幫助。
PS。沒有必要堅持grep。
更新: 我正在處理的文件實際上是一個DOS文件,我不知道。這造成了一切麻煩。所以實際上,所有提出的解決方案,包括我的(已更正):
tr -d '\r' <file> file_n
N=`grep 'no of lines' file_n| tr -d A-Za-z' '`
grep -A $N 'start from here' file_n
工作得很好。
你能提供一個樣本輸入和輸出? – anubhava
你是否需要grep呢,還是打算使用Python或其他? –
''bash'在調用'grep'前用它的值替換'$ N',所以'grep'不知道正在使用一個變量。問題必須在於如何設置'N'的值。 – chepner