开发者

grep and sed command

开发者 https://www.devze.com 2022-12-20 01:32 出处:网络
i have a truckload of files with sql commands in them, i have been asked to extract all database table names from the files

i have a truckload of files with sql commands in them, i have been asked to extract all database table names from the files How can I use grep and sed to parse t开发者_JAVA技巧he files and create a list of the unique table names in a text file ..one per line?

the name names all seem to start with "db_" which is handy!

what would be the best way to use grep and sed together to pull the table names out?


This will search for lines containing the table names. The output of this will quickly reveal if a more selective search is needed:

grep "\<db_[a-zA-Z0-9_]*" *.sql

Once the proper search is sorted out, remove all other characters from lines with tablenames:

grep "\<db_[a-zA-Z0-9_]*" *.sql  |  sed 's/.*\(\<db_[a-zA-Z0-9_]*\).*/\1/'

Once that's running, add on a sort and remove duplicates:

(same last pipe expression)  |  sort  |  uniq


you just need grep

grep -owE "db_[a-zA-Z0-9]+" file|sort -u

or awk

awk '{for(i=1;i<=NF;i++)if($i~/^db_[a-zA-Z0-9]+/){print $i} }' file
0

精彩评论

暂无评论...
验证码 换一张
取 消