sed
파일에서 특정 문자열을 가진 line을 없애버리기
sed '/없애버릴 글자/d' 파일 > 결과물
만일 변수를 넣을 경우면 double quote를 사용해야함
sed "/$variable/d" "$files" > 결과물
파일에서 특정 행 (specific line number)를 제거하고 싶을 때,
sed -e '5,10d;12d' 파일
5번부터 10번까지와 12번을 제거할 때임.
파일에서 특정 행들을 추출하고 싶을 때,
sed -n 5,10p;12p 파일
5번부터 10번까지와 12번을 뽑을 때임
파일의 특정 line(row)에 삽입하고 싶을 때,
sed -i "15i 넣고싶은문자" Makefile.txt
-i : overwrite하란 소림
15 : 15번째 row(line)
파일 전체에서 특정 문자를 다른 걸로 바꾸고 싶을 때
sed 's/기존문자/다른문자/;s/기존문자2/다른문자2/'
여러 문자 바꿀 때는 세미콜론으로 구분해서 넣으면됨.
특정파일의 내용을 특정 line(row)에 삽입하고 싶을 때,
sed -i 2r파일이름 덮어씌울파일이름
2r : 3번 째 줄에 넣고 싶으면 2r을 하면 됨. 즉 원하는 line 수에 -1을 하면 됨.
파일에 새로운 column(열)을 만들고 거기에 문자 넣기
sed -i "s/$/\t넣고싶은글/" 파일
-i : overwrite하라는 의미임
s : substitution(교체) 하란 뜻임.
Perform a substitution with s/PATTERN/REPLACEMENT/
. In this example PATTERN is $
, the end of the line, and REPLACEMENT is \t
(= a TAB), and $f
is the filename, from the loop variable. The s///
command is within double-quotes so that the shell can expand variables.
https://unix.stackexchange.com/questions/117568/adding-a-column-of-values-in-a-tab-delimited-file
특정 열(column)에 접미사(suffix)를 붙이고 싶을 때,
sed 's/\t/$&/1' test > test2 && cut -f1 test2
\t : tab 구분자인 경우 이렇게 하고 space이면 space치면됨
$를 넣을 거고 &/1 은 1번 column을 의미함.
여러 개의 패턴으로 문자들을 지우고 싶을 때,
sed '/없애버릴 글자/d; /없애버릴 글자2/d' > 결과물
-i를 쓰면 overwite됨 길게 쓰면 몇 개든 지워짐
#------------- awk '
특정 열(column)에서 특정 character value를 갖는 것만 취하고 싶을 때,
awk -F '\t' '$26 == "Somatic"' TCGA.GBM.mutect.protected.maf > TCGA.GBM.mutect.somatic_proctected_v1.maf
-F : filed separater임. tab인 경우 '\t'를 넣어줘야함.
$몇번째 열인지
== Somatic 을 뽑고 싶을 때
숫자도 가능함 그런 경우 >= > < 등을 쓰면됨 그렇게 할 경우 값의 크기에 따라 뽑을 수 있음.
http://www.thegeekstuff.com/2009/11/unix-sed-tutorial-append-insert-replace-and-count-file-lines/?ref=driverlayer.com
특정 열 (column)에서 특정 character를 다른 것으로 바꾸고 싶을 때,
awk -F '\t' -v OFS='\t' '{ sub("-",".",$3); print }'
sub("바꿀 대상 문자열", "대체할 문자열", 항목변수)
-v OFS='\t' output의 separator를 어떻게 설정할지임.
'linux(리눅스)' 카테고리의 다른 글
sublime text (0) | 2017.06.25 |
---|---|
특정 문자열을 갖는 row만 뽑아내기/제거하기 (grep) (0) | 2017.06.22 |
특정 column만 뽑아내는 법 (0) | 2017.06.20 |
for문으로 프로그램 돌리기 리눅스 (0) | 2017.06.16 |
원격 접속 후 실행한 프로그램 계속 돌리는 법 (ssh) (0) | 2017.04.25 |