find ์ grep์ ์ด์ฉํ ๋ฌธ์์ด ์ฐพ๊ธฐ
ํ์ด์ง ์ ๋ณด
๋ณธ๋ฌธ
์ถ์ฒ:ย https://sncap.tistory.com/575
ย
ํ์ ํด๋ ๋ด server.xml ํ์ผ์์ "Connector port" ๋ผ๋ ๋ฌธ์ ์ด ์ฐพ๊ธฐ
ย
|
findย -name server.xml | xargs grep --color "Connector port"ย |
ย
grep
ํ์ ํด๋๋ฅผ ํฌํจํ์ฌ ์กด์ฌํ๋ ๋ชจ๋ ํ์ผ์์ ์ํ๋ ๋จ์ด๋ฅผ ์ฐพ์์ฃผ๋ ๋ช ๋ น์ด์ ๋๋ค.ย
ย
grep -rni [๊ฒ์์ด] [๊ฒฝ๋ก๋ช ๋๋ ํ์ผ๋ช ]
ย
r : ย ํ์๋๋ ํ ๋ฆฌ๊น์ง ๊ฒ์
n: ย ํ์ผ์ ๋ช๋ฒ์งธ ๋ผ์ธ์ ์๋์ง ํ์
i : ย ๊ฒ์์ด๋ฅผ ๋์ ๋ฌธ์ ๊ตฌ๋ถ์์ด ๊ฒ์
ย
๊ฒ์์ด ๋ด์ ๊ณต๋ฐฑ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ๋ ""๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.ย
ย
์) ย ย
ย ย ย ย grep -rn test ./kernel/-
ย ย ย ย grep -rni "test board" ./kernel/-
ย ย ย ย grep -rn test *
ย
git์ด๋ svn์ ์ฌ์ฉํ์๋ ๋ถ๋ค์ .git .svn ํด๋๋ก ์ธํด ๋ถํ์ํ๊ฒ ๊ฒ์ ์๊ฐ์ด ๋์ด๋ฉ๋๋ค.
์๋์ ๊ฐ์ด ํน์ Directory๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.
ย
ย ย ย ย ย --exclude-dir=๋๋ ํ ๋ฆฌ
์)
ย ย ย ย grep -rn --exclude-dir=\.git test ./kernel/-
ย ย ย ย .bashrc ํ์ผ์ ์๋ ๋ด์ฉ์ ์ถ๊ฐํ์๋ฉด ๋ ํธํ๊ฒ ์ฌ์ฉํ์ค ์ ์์ต๋๋ค.
ย ย ย ย alias grp='grep -rn --exclude-dir=\.git'
ย ย ย ย grp test ./kernel/- ๊ณผ ๊ฐ์ด ์ฌ์ฉํ์ค ์ ์์ต๋๋ค.
ย
tip
ย ย ย ย ๊ตฌ์กฐ์ฒด์ ์ ์(definition)๋ถ๋ถ ๊ฒ์ ์
ย ย ย ย ์ผ๋ฐ์ ์ผ๋ก ์ ์ ๋ถ๋ถ์ ์ด๋ฆ๋ค์ { ๊ฐ ์์นํฉ๋๋ค.
ย ย ย ย struct input_dev {
ย ย ย ย ...
ย ย ย ย grep -rn "input_dev\s*{" *
ย ย ย ย grep -rn "input_dev\s\+{" *
ย ย ย ย ๋ก ๊ฒ์ํ์๋ฉด ๋ฉ๋๋ค.
ย
ย ย ย ย \s ๋ space๋ฅผ ์๋ฏธํฉ๋๋ค.
ย ย ย ย * ๋ ๊ฐ์๊ฐ 0 ๊ฐ ์ด์์ ์๋ฏธํฉ๋๋ค. ย ๋ฐ๋ผ์ ๊ณต๋ฐฑ์ด 0๊ฐ ์ด์ ์กด์ฌํด์ผ ํฉ๋๋ค.
ย ย ย ย \+ 1๊ฐ ์ด์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ๊ณต๋ฐฑ์ด ์ ์ด๋ 1๊ฐ๋ ์กด์ฌํด์ผ ํฉ๋๋ค.
ย
find
ํ์ ํด๋์ ์กด์ฌํ๋ ํ์ผ์ ์ฐพ์์ฃผ๋ ๋ช ๋ น์ด์ ๋๋ค.ย
ย
find [๊ฒ์ ๋๋ ํ ๋ฆฌ] -iname [ํ์ผ๋ช ]
ย
-name ย ย : ย ๋์๋ฌธ์ ๊ตฌ๋ถํ์ฌ ํ์ผ๋ช ๊ฒ์
-iname ย : ย ๋์๋ฌธ์ ๊ตฌ๋ถํ์ง ์๊ณ ํ์ผ๋ช ๊ฒ์
ย
์)ย
ย ย ย ย find ./kernel -iname mcs*
ย ย ย ย find . -name mcs*
ย
Tip
ย ย ํน์ ํ์ฅ์์์ ๋ฌธ์์ด ๊ฒ์
ย ย ย find . -iname "*.h" | xargs grep -n "input_dev"
ย ย find๋ก ํ์ผ๊ฒ์ํ ย ํ์ผ๋ด์ ํน์ ๋ฌธ์์ด ๊ฒ์
๋๊ธ๋ชฉ๋ก
๋ฑ๋ก๋ ๋๊ธ์ด ์์ต๋๋ค.
