2017-04-19 31 views
1

我嘗試使用帶有模式的'grep'命令,但它不起作用。 這裏是我的代碼:如何使用shell腳本打印目錄中文本文件的多行文本,以及以數字或點開頭的子目錄?

#!/bin/bash 

if [ ! $# -eq 1 ] 
then echo usage: $0 dir 
    exit 1 
fi 

if [ ! -d $1 ] 
then echo "$1 is not a directory\!" 
    exit 1 
fi 

grep -r '^[.0-9].*\t$' $1 

比方說,我有一個文件(SAMPLE1),在〜/下載/

SAMPLE1:

123fghgfhfghgfhgfh 
.9 
something 
45 
jhjkhjhgjhjh 

當我鍵入「./myscript.sh〜/ Downloads」,我要查看:

123fghgfhfghgfhgfh 
.9 
45 

回答

2

您可以使用此grep命令:

grep -rE '^\.?[0-9]' "$1" 
+0

這看起來不錯,但我怎麼能過濾掉文本文件,因爲在結果中還會出現一些二進制文件? –

+0

使用:'grep -I -rE'^ \。?[0-9]'「$ 1」'忽略二進制文件。 – anubhava

1

可以使用命令:

grep -I -rE "^[.0-9]" $1 

grep --binary-files=without-match -rE "^[.0-9]" $1 
相關問題