이렇게 아름다운 글을 보고 있으니 몸 둘 바를 모르겠다. 정리를 매우 잘했다. 날짜를 보니 2001년 자료였다. 아련한 시간이다. 2001년으로 돌아간다면 나는 리눅스를 공부하고 c언어를 공부할 것 같다.
Bash shelll 자료가 아주 좋다. 원 저작자는 따로 있었는데, 그 사람의 원본 주소를 들어가니 광고가 나왔다. 본문의 원 저작자는 사라진 것으로 보인다.
시간 있을 때 본문 내용을 차근차근 읽어보면 도움이 클 것 같다.
이렇게 아름다운 글을 보고 있으니 몸 둘 바를 모르겠다. 정리를 매우 잘했다. 날짜를 보니 2001년 자료였다. 아련한 시간이다. 2001년으로 돌아간다면 나는 리눅스를 공부하고 c언어를 공부할 것 같다.
Bash shelll 자료가 아주 좋다. 원 저작자는 따로 있었는데, 그 사람의 원본 주소를 들어가니 광고가 나왔다. 본문의 원 저작자는 사라진 것으로 보인다.
시간 있을 때 본문 내용을 차근차근 읽어보면 도움이 클 것 같다.
Unix/LInux 또는 맥킨토시에서 사용할 수 있습니다. bash shell(/bin/bash)
$ bash --help
GNU bash, version 4.4.23(1)-release-(x86_64-pc-msys)
Usage: bash [GNU long option] [option] ...
bash [GNU long option] [option] script-file ...
$ find . : 현재 폴더와 하위 폴더 모든 정보를 출력한다. 콤마를 한 칸 띄고 적는다.
$ find . -name "*.pdf" : 명령어 입력하는 폴더를 기준으로 하위 폴더 포함하여 검색한다. pdf 확장자 파일을 찾는다.
$ find . -name "*.pdf" > pdfOut.txt : 검색 결과를 문서파일로 저장한다. 문서파일에 그대로 검색 결과를 저장한다.
$ find . | grep text.txt : 파이프'|'는 키보드 엔터키 위에 있다. 결과를 넘겨준다.
$ find . -name "*.txt" | xargs grep "Hello" | less : 문서에서 "Hello"를 찾는다. 한 화면씩 보여준다.
$ find . -name "*.txt" -exec rm {} \; : 검색한 결과 파일을 지운다. 조심해야하지요.
$ find . -maxdepth 2 -name '*.txt' : 폴더 깊이를 2단계로 제한하여 검색한다.
find 명령어 정말 다양하게 사용가능합니다.
$ find . -name '*good*' : 파일 이름에 위치 상관없이 good 표기한 파일 검색
$ find . -name "test*" -type d : 디렉토리를 찾으려면 -type d 를 이용한다.
$ sudo find / -size +10M -exec ls -lh {} \; : 용량을 지정해줄 수 있다. sudo로 권한문제해결.
$ find / -name "test*" 2>/dev/null : 권한 오류를 회피할 수 있다.
$ find . -empty : 빈파일을 찾는다.
$ find . -name "* *" -exec rm -f {} \; : 공백이 있는 파일들 지웁니다. "* *" 공백을 의미하죠.
write()함수는 간단합니다. 첫번째 인자로 0,1,2 중에 하나를 입력합니다. 0 :표준입력, 1:표준출력, 2:표준오류 입니다. 화면 출력을 하려면 1을 지정합니다. 두번째 인자는 데이터 첫 주소값 입니다. 세번째 인자는 사용하려는 바이트의 수입니다.
#include <unistd.h>
size_t write( int fildes, const void *buf, size_t nbytes );
#include <unistd.h>
void ft_print_comb(void)
{
char numArr[3];
char separator[2];
numArr[0] = '0';
separator[0] = ',';
separator[1] = ' ';
while (numArr[0] <= '7')
{
numArr[1] = numArr[0] + 1;
while (numArr[1] <= '8')
{
numArr[2] = numArr[1] + 1;
while (numArr[2] <= '9')
{
write(1, numArr, 3);
if (numArr[0] != '7' || numArr[1] != '8' || numArr[2] != '9')
{
write(1, separator, 2);
}
++numArr[2];
}
++numArr[1];
}
++numArr[0];
}
}
int main(void){
ft_print_comb();
return 0;
}
하나씩 첫번재 배열 값보다 크게 지정하면 숫자가 겹치지 않은 조합수를 만들 수 있어요.
0 1 2 / 0 1 3 / 0 1 4 ... 6 7 8 / 6 7 9 / 6 8 9 / 7 8 9
복잡하게 보이지만 충분히 이해할 수 있는 수준의 코드입니다.
포인터 문법으로 스왑 swap 함수 작성해보자 (0) | 2020.07.06 |
---|---|
write() 함수로 0~9 숫자 출력 (0) | 2020.07.06 |
putchar() 함수로 알파벳 순서대로 출력하기 (0) | 2020.07.06 |
write() 함수와 scanf() If제어문으로 음수 양수 확인 (0) | 2020.07.06 |
[c/c++] putchar() 함수를 이용하여 int 숫자 출력 (3) | 2020.07.05 |