์ ๊ทํํ์์์๋ grep๋ฅผ ์ฌ์ฉํ๋ค. <= ~ | grep ~ ๋ ํํฐ๋ง ๊ธฐ๋ฅ์ด ์๋ค
ํจํด ์ค๋ช
[aeiou] a, e, i, o, u ์ค ์ด๋ ๋ฌธ์๋ผ๋ ๋ค์ด์๋ ๊ฒ
[a-z] a๋ถํฐ z ์ฌ์ด์ ๋ฌธ์๊ฐ ๋ค์ด์๋ ๊ฒ. ์ํ๋ฒณ ์๋ฌธ์
[a-z][A-Z] a๋ถํฐ z ์ฌ์ด์ A๋ถํฐ Z ์ฌ์ด์ ๋ฌธ์๊ฐ ๋ค์ด์๋ ๊ฒ. ์ํ๋ฒณ ๋์๋ฌธ์
[0-9] 0๋ถํฐ 9 ์ฌ์ด์ ์ซ์๊ฐ ๋ค์ด์๋ ๊ฒ
^[ ], [^ ] ^[ ]๋ [ ] ๋ด์ฉ์ผ๋ก ์์๋จ, [^ ]๋ [ ] ๋ด์ฉ์ ๋ถ์ <= ^[^#$]
^pattern ์ฃผ์ด์ง ํจํด์ผ๋ก ์์๋๋ ์ค <= ^#
pattern$ ์ฃผ์ด์ง ํจํด์ผ๋ก ๋๋๋ ์ค. ๋จ๋
์ผ๋ก $๋ฅผ ์ฐ๋ฉด ๋น ์ค <= #$
^[a-z][0-9]$ ์์์ a๋ถํฐ z ์ฌ์ด์ ๋ฌธ์, ๋์ 0๋ถํฐ 9์ฌ์ด์ ์ซ์์ธ ์ค
[.], [...] .๋ ์์์ ๋ฌธ์ 1๊ฐ, ...๋ ์์์ ๋ฌธ์ 3๊ฐ <= [a...e] <=a???e
pattern+ ์ด์ ํจํด๊ณผ ํ๋ ์ด์์ผ๋ก ๋งค์น๋๋ ์ด๊ตฌ <= root+
pattern* ์ด์ ํจํด๊ณผ ๋งค์น๋์ง ์๋ ์ด๊ตฌ <= root*
pattern? ์ด์ ํจํด๊ณผ ํ๋๋ง ๋งค์น๋๋ ์ด๊ตฌ <= root?
(abc)+ 'abc' ํจํด๊ณผ ํ๋ ์ด์์ผ๋ก ๋งค์น๋๋ ์ค. +๋ ์ ์ด๋ ํ๋ ์ด์์ ์๋ฏธ
()๋ ์ฌ๋ฌ ์ ๊ท ํํ์์ ํ๋๋ก ๋ฌถ๊ธฐ๋ ํ๋ค
v ๋ถ์ ์ ์๋ฏธ <= v #๋ #์ด ์๋ ์ค์ ๋ณด์
c ๊ฐฏ์๋ฅผ ํ์ <= c #๋ #์ด ์๋ ์ค์ ๊ฐฏ์
| ๋ ๊ฐ์ ์ ๊ท ํํ์์์ OR ์๋ฏธ
{n}, {n,m} ์ง์ ๋ ์ ๊ท ํํ์์ n๋ฒ ์ผ์น, ์ต์ n์์ ์ต๋ m๋ฒ ์ผ์น
--------------------------------------------------------
[: ~ :] ํด๋์ค
[:alnum:] [:alpha:] [:digit:] [:punt:]
alnum์ ์๋ฌธ์ด๋ ์ซ์์ ์ผ์น
alpha๋ ์๋ฌธ์์ ์ผ์น
digit๋ ์ซ์์ ์ผ์น
punt๋ ๊ตฌ๋์ (, . )๊ณผ ์ผ์น
=>[: ~ :] ํด๋์ค์๋ alnum(๋ฌธ์+์ซ์), alpha(๋ฌธ์), blank(๋น์นธ), digit(์ซ์),
lower(์๋ฌธ์), upper(๋๋ฌธ์), print(๋ณด์ด๊ธฐ), space(๋น์นธ), special(ํน์๋ฌธ์),
xdigit(16์ง์) ๋ฑ์ ๋ฃ์ ์ ์๋ค. ์ฌ๋ฌ ํด๋์ค๋ฅผ ์ธ ๋์๋ [] ์ [] ์ฌ์ด์ ํ ์นธ์ฉ ๋์ฐ๊ณ ๋์ดํ๋ฉด ๋๋ค.
1. [:alnum:] [:alnum:]์ ์ํ๋ฒณ๊ณผ ์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์๋ค์ ์๋ฏธํ๋ค. ์๋ฅผ ๋ค์ด, ๋ค์ ๋ช ๋ น์ด๋ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ ์ค ์ด๋ฆ์ ์ํ๋ฒณ๊ณผ ์ซ์๋ง ํฌํจ๋ ํ์ผ์ ์ฐพ์๋ธ๋ค.
cat -n /root/anaconda-ks.cfg | grep -E '[[:alnum:]]'
2. [:alpha:] [:alpha:]๋ ์ํ๋ฒณ ๋ฌธ์๋ค์ ์๋ฏธํ๋ค. ๋ค์ ๋ช ๋ น์ด๋ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ ์ค ์ด๋ฆ์ด ์ํ๋ฒณ ๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ํ์ผ์ ์ฐพ์๋ธ๋ค.
cat -n /root/anaconda-ks.cfg | grep -E '[[:alpha:]]'
3. [:digit:] [:digit:]๋ ์ซ์ ๋ฌธ์๋ค์ ์๋ฏธํ๋ค. ๋ค์ ๋ช ๋ น์ด๋ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ ์ค ์ด๋ฆ์ด ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ํ์ผ์ ์ฐพ์๋ธ๋ค.
cat -n /root/anaconda-ks.cfg | grep -E '[[:digit:]]'
4. [:punct:] [:punct:]๋ ๊ตฌ๋์ ๋ฌธ์(,, ;,:, .)๋ค์ ์๋ฏธํ๋ค. ๋ค์ ๋ช ๋ น์ด๋ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ ์ค ์ด๋ฆ์ด ๊ตฌ๋์ ๋ฌธ์๋ฅผ ํฌํจํ๋ ํ์ผ์ ์ฐพ์๋ธ๋ค.
cat /etc/passwd | grep -E '[[:punct:]]'
grep ์ฌ์ฉ์์
v / c : v๋ ์ผ์น๋๋ ๋ด์ฉ์ด ์๋ ์ค, c๋ ์ผ์น๋๋ ๋ด์ฉ์ด ์๋ ์ค ๊ฐ์ ํ์
n : ์ผ์น๋๋ ๋ด์ฉ์ ์ค ๋ฒํธ์ ํจ๊ป ํ์
i : ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์๊ณ ํด๋น๋๋ ๋ด์ฉ์ด ์๋ ์ค ํ์
e : ์ ๊ทํํ์ ์ฌ์ฉ
f : ์ฐพ์ผ๋ ค๋ ๋ฌธ์ฅ์ด๋ ํํ์ด ์๋ ํ์ผ์ง์
l / w : l์ ํจํด์ด ํฌํจ๋ ์ค, w๋ ํจํด์ด ํฌํจ๋ ๋จ์ด ํ์
r : ๋ฐ๋ณต์ ์ผ๋ก ์ฐพ์ ๋ฑ์ด ์๋ค.
=>[a-e]๋ {abcde}๋ก์จ a,b,c,d,e ์ค ํ๋์ด๊ณ [a-e]์ ๊ฐ๋ค,
[ak]๋ a๋ k ์ค ํ๋,
^a๋ a๋ก ์์,
a$๋ a๋ก ๋๋จ,
v #์ #์ด ์๋ ์ค ๋ณด์,
c #์ #์ด ์๋ ์ค์ ๊ฐฏ์๋ฅผ ๋ํ๋ธ๋ค.
ex) a. ls doc[A-E]๋ A, B, C, D, E ์ค ์ผ์น๋๋ ๊ฒ ๋ชจ๋
b. ls doc[AE]๋ A๋ E ์ค ์ผ์น๋๋ ๊ฒ ๋ชจ๋
c. ls doc{A..E}๋ A๋ก ์์ E๋ก ๋๋๋ ์ด 4์๋ฆฌ ๊ฒ
d. ls doc{AE}๋ AE๋ก ๋ ๊ฒ
e. ^pass : pass๋ก ์์๋๋ ๋ชจ๋ ์ค,
f. ^#์ #์ผ๋ก ์์๋๋ ์ค,
g. ^$ : ๋ชจ๋ ๋น ์ค,
h. #$ : #์ผ๋ก ๋๋๋ ์ค,
i. d...(...์ด ์ธ ๊ฐ) : d๋ก ์์๋๋ ์ด ๋ค ์๋ฆฌ ๋ฌธ์(d???),
j. [a-d]* : a์์ d๊น์ง a,b,c,d ์ค ํ๋๋ก ์์๋๋ ๋ฌธ์์ด,
k. [Dd]atabase : D๋ d๋ก ์์๋๋ database๋ผ๋ ๋จ์ด,
l. [^D] : D๋ผ๋ ๋ฌธ์๋ก ์์๋์ง ์๋ ์ค,
m. c...d(...์ด ์ธ ๊ฐ) : c๋ก ์์๋๊ณ d๋ก ๋๋๋ ์ด 5์๋ฆฌ ๋ฌธ์(c???d) ๋ฑ์ด ์๋ค.
๋ฌธ์ฅ์์ #์ผ๋ก ์์๋๋ฉด ํด๋น ์ค์ ๋ด์ฉ์ ๋ฌด์ํ๋ค๋ ์๋ฏธ์ด๊ณ Remark(์ฃผ์)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํจํด ๊ฒ์๊ณผ ์ฒ๋ฆฌ๋ฅผ ์ํ - awk
์ด ๋ช
๋ น์ด๋ ์์์ ์ฌ์ฉํ๋ cut ๋ช
๋ น์ด์ ์ ์ฌํ๋ฐ 'awk {action $์ปฌ๋ผ} ํ์ผ_๋ช
' ํ์์ด๋ค. action์ ์ฃผ๋ก ํ๋ฉด์ ๋์ฐ๋ print๋ฅผ ์ฌ์ฉํ๊ณ ์ปฌ๋ผ์ $0, $1, ...์์ผ๋ก ์ง์ ํ๋ค. ์ด awk๋ Bash Shell ์คํฌ๋ฆฝํธ์์ ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์๋ค. ์ต์
์ ๋ค์๊ณผ ๊ฐ๋ค.F : ํ๋ ๊ตฌ๋ถ์๋ก :, ;, Tab, space ๋ฑ์ ์ฌ์ฉํ ์ ์์
f : ํ์ผ ์ง์
e : ํ๋ก๊ทธ๋จ ํ
์คํธ
E : ํ์ผ ์คํ ๋ฑ์ ์ต์
์ด ์๋ค.
ํ์ผ์ ํธ์งํด์ ๋ณด์ด๋ - sed(stream editor)
sed๋ ํ์ผ์ ๊ฐ๋ฌด๋ฆฌํด์ ๋ณด์ด๋๋ฐ(๋ณ๊ฒฝ๋ ๊ฐ๋ฅ) ํ ์ค์ฉ ์ฝ์ด์ ์์
์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ฒํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒ ์ฌ์ฉํด์ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋ ์ ์ฉํ๋ค. 'sed [option] ๋ช
๋ น์ด ํ์ผ_๋ช
' ํ์์ผ๋ก ์ฌ๋ฌ ์ต์
๊ณผ ๋ณต์กํ ๊ตฌ๋ฌธ์ ๊ฐ์ง๊ณ ์์ง๋ง ์ ์ฌ์ฉํ๋ฉด ์ ๋ง ๊ฐ๋ ฅํ ํธ์ง๊ธฐ์ด๋ค.
โ ^, ;, #, @, ... ๋ฑ์ด ๋ฌธ์/ํน์๊ธฐํธ๋ผ๋ ๊ฒ์ ํ์ํ๊ธฐ ์ํด์ ๋ฌธ์ ์ ํ์ / ๋ฅผ ๋ฃ๋๋ค.
โ ^๋ ์ฒ์,
$๋ ๋,
. ๋ ์ด๋ ํ๊ฐ ๋ฌธ์์ ์ผ์น,
*๋ ์ด๋ ์์์ ๊ฐฏ์์ ๋ฌธ์/์ซ์์ ์ผ์น,
\๋ ์ ๊ทํํ์,
[abc]๋ a, b, c ์ค ์ด๋ ๋ฌธ์์๋ ์ผ์น,
![abc]๋ a๋ b๋ c ์ด๋ ๋ฌธ์์๋ ๋ถ์ผ์น,
!๋ ์ ํ๋ ์ค ์ ์ธ,
/a./๋ a๋ก ์์๋๋ 2 ๋ฌธ์(,),
/a.../๋ a๋ก ์์๋๋ 4 ๋ฌธ์.
/^#/์ ์ฃผ์#์ผ๋ก ์์๋๋ ์ค,
/^root/๋ root๋ผ๋ ๋จ์ด๋ก ์์๋๋ ์ค,
/root$/๋ root๋ผ๋ ๋จ์ด๋ก ๋๋๋ ์ค,
/^$/๋ ๊ณต๋ฐฑ ์ค์ ์๋ฏธํ๋ค.
โ [ํจํด]/p๋ ํด๋น ํจํด์ถ๋ ฅ,
[ํจํด]/d๋ ํด๋น ํจํด์ญ์ ,
s/๋ฌธ์1/๋ฌธ์2/๋ ํจํด์์ ์ฒ์ ๋ณด์ด๋ ๋ฌธ์1์ ๋ฌธ์2๋ก ๋์ฒด,
s/๋ฌธ์1/๋ฌธ์2/g๋ ๋ฌธ์1์ ๋ฌธ์2๋ก ๋ชจ๋ ๋์ฒด(/g๋ ๋ชจ๋ ์ค์ ์ ์ฉ),
/i๋ ๋์๋ฌธ์ ๋ฌด์,
n์ ์ถ๋ ฅ๋ง ํด์ค(์ฃผ๋ก p ์ต์
๊ณผ ๊ฐ์ด ์ฌ์ฉ),
f๋ ํ์ผ์ง์ ,
e๋ ๋ณ๊ฒฝํด์ ๋ณด์ด๊ธฐ๋ง ํจ,
i๋ ์๋ก์ด ํจํด์ผ๋ก ๋ณ๊ฒฝํด์ ํ์ผ๋ก ์ ์ฅ ๋ฑ์ ์ต์
์ด ์๋ค.
=>ํน์ ์ค์ ๋ณผ ๋์๋ '2p' OR '2,5p'๋ก ํด์ค๋ค.
์ถ๊ฐํ ๋์๋ a๋ฅผ ์ฐ๋๋ฐ 3์งธ์ค์ ์ถ๊ฐํ๋ค๋ฉด '2a\~'์์ผ๋ก ํด์ค๋ค.
์ค๋ง๋ค ๊ณต๋ฐฑ์ ์ค๋ค๋ฉด G ๋ง ๋ฃ์ผ๋ฉด ๋๋ค.
์ด๊ตฌ๋ฅผ ๊ต์ฒดํ ๋์๋ 's/b/k/g' ํ๋ฉด ๋ชจ๋ ์ค์์ b๋ฅผ k๋ก ๋ฐ๊พผ๋ค.
=>2๋ฒ์งธ ์ค์์ b๋ฅผ k๋ก ๊ต์ฒดํ๋ค๋ฉด ์ค ๋ฒํธ๋ฅผ ๋ช
์ํด์ '2s/b/k' ํด์ค๋ค.
=>2~10์ค๊น์ง์์ b๋ฅผ k๋ก ๊ต์ฒดํ๋ค๋ฉด '2,10s/b/k/g' ํด์ค๋ค.
d๋ ์ญ์ ์ด๋ค. 2~5๊น์ง์์ b๋ฅผ ์ญ์ ํ๋ค๋ฉด
=>'2,5d' ~ ํด๋ ๋์ง๋ง '2,5s/b//g'ํด๋ ๋๊ณ
ํ์ผ์ ๋ถํ ํด์ฃผ๋ – split
์ต์
์์ด 'split ํ์ผ1 ํ์ผ2'ํ๋ฉด ํฐ ํ์ผ1์ ๋ํดํธ๋ก 1,000์ค์ฉ ์๋ผ์ ํ์ผ2aa, ํ์ผ2ab, ...ํ์ผ2az, ํ์ผ2ba, ...์์ผ๋ก ๋๋ ์ ์ ์ฅํ๋ค. ์ต์
์ผ๋ก
b : byte ๋จ์๋ก ์๋ฆ
l : ์ค ๋จ์๋ก ์๋ฆ ๋ฑ์ด ์๋ค.
ํ
์คํธ๋ฅผ ์ ๋ ฌํด์ ๋ณด์ด๋ – sort
ํ์ผ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด๊ฐ sort์ธ๋ฐ ์ต์
์ผ๋ก
b : ์ฒซ์ค ๋น์นธ ๋ฌด์ํ๊ณ ์ ๋ ฌ
f : ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ์ ๋ ฌ
n / r : n์ ๋ํดํธ์ธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ, r์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
o : ์ถ๋ ฅํ์ผ๋ก ์ ์ฅ( > ํด๋ ๋จ) ๋ฑ์ด ์๋ค.
ํ์ผ์ ํ๊ฐ๊ถ(chmod)๊ณผ ์์ ๊ถ(chown)
ํ๊ฐ๊ถ์ ์ธ ์๋ฆฌ์ฉ ๋์ด์ ๋ณด๋๋ฐ
- rwx r-x r-x
ํ์ผ user ๊ถํ group๊ถํ other ๊ถํ
๋ณ๊ฒฝ์ ๋ ๊ฐ์ง๊ฐ ์๋๋ฐ
โ character method : r(read) 4, w(write) 2, x(execute) 1๋ฅผ ๊ฐ๊ฐ
=>u+w,x(user์๊ฒ w์ x๊ถํ์ ์ค) o-x(other์๊ฒ x ๊ถํ์ ๋บ์)์์ผ๋ก ํด์ค๋ค.
โ numeric method : 4+2+1=7, 4+2=6, 4+1=5, 2+1=3์ ์กฐํฉ์ผ๋ก ์ ํ๋ค.
=>751ํ๋ฉด user์๊ฒ 7(rwx), group์๊ฒ 5(rx), other์๊ฒ 1(x)์ ๊ถํ์ ์ค๋ค๋ ์๋ฏธ์ด๋ค.
-rw-r--r--. 1 root root 16 Mar 3 21:37 tom1.txt
ํ์ผ์ด๊ณ user๋ ์ฝ๊ณ ์ฐ๊ณ , group์ ์ฝ๊ณ , other๋ ์ฝ๊ธฐ๋ง ํ๋ ๊ถํ์ด๋ค.
drwxr-xr-x. 2 root root 6 Mar 3 21:25 winterreport
๋๋ ํฐ๋ฆฌ์ด๊ณ user๋ ์ฝ๊ณ ์ฐ๊ณ ์คํํ๊ณ , group์ ์ฝ๊ณ ์คํํ๊ณ , other๋ ์ฝ๊ณ ์คํํ ์ ์๋ ๊ถํ์ด๋ค.
=>a+x๋ +x๋ก๋ ์ฌ์ฉ๋๋๋ฐ user, group, other์๊ฒ ๋ชจ๋ +x ๊ถํ์ ์ถ์ฌํ๋ค๋ ์๋ฏธ์ด๋ค.
==>์ผ๋ฐ ํ์ผ์ ๋ช
๋ น์ด(๋ค)์ ๋ฃ๊ณ chmod +x ๊ถํ์ ์ฃผ๋ฉด ์คํํ์ผ๋ก ๋ฐ๋๋ค!!!
-rw-r--r--. 1 root root 16 Mar 3 21:37 tom1.txt
์ฌ์ฉ์ ๊ทธ๋ฃน =>์ด tom1.txt ํ์ผ์ rioot ๊ทธ๋ฃน์ ์ํ root ์ฌ์ฉ์ ์์ ์ด๋ค.
<= ์์ ์์ ๊ทธ๋ฃน์ ๋ณ๊ฒฝํ๋ค๋ฉด chown ์์ ์:๊ทธ๋ฃน ์ผ๋ก ํด์ฃผ๋ฉด ๋๋ค.
:๊ทธ๋ฃน ํ๋ฉด ๊ทธ๋ฃน๋ง ๋ณ๊ฒฝ๋๋ค.