commond
scp
1.传输文件[本地]
scp user@hostip:server_file local_path #文件
scp -r user@hostip:server_folder local_path #文件夹
awk
1.Summary
- $0:整行
- 从1开始计数
- 只能有一对单引号
- 语句结束加分号(;)
- 注意文件保存格式在linux和window的区别
2. Note
- BEGIN:从第一行开始
- FS:输入字段分隔符,默认空格
- OFS:输出字段分隔符,默认空格
- ||/&&: 或/与
<!-- -->
cat file.txt | awk 'BEGIN {FS="\t";OFS="\t"} {if ($20 == "%" || $20 == "%%") {$23 = $14; print $0} else if ($20 != "%" && $20 != "%%") {$23 = $22; print $0}}' > file2.txt
3.保留第一行的标题
- 可
NR==1
实现
cat file.csv | awk -F, 'NR==1;{if($9<=-5)print$0}'> select_file.csv
4.文件中添加一列一样的字符串
awk '$0=$0"\t20191027"' file.txt
5.sort
排序时排除第一行
awk 'NR==1{print $0;next}{print $0 | "sort -u"}'
如果写完整应该是:
awk '{if(NR==1) {print $0;next}} {print $0 | "sort -u"}'
6.调整txt
文件中列的顺序
awk '{print $2,$3,$1,$4}' OF=, OFS=, 6G.txt
7.大小写转换
awk '{print tolower($1)}' file.csv
#第一列转小写
awk '{print toupper($1)}' file.csv
#第一列转大写
Vim
common command
set list
:查看分隔符ctrl+v+i
: vim中输入tabshift+mouse
:vim中复制
ps
1.查看用户所有进程
ps -aux | grep byzhang
grep
grep -w
: 精确匹配grep -v
:反向选择grep -i
:忽略大小写
du
1.查看占用磁盘大小
du -sh
ln
1. ln : link files,为某一文件在另一个位置建立同步链接,包括硬链接(hard link)和 软链接(symbolic link),两种方式都不会将原本的档案复制一份,而是只占用极少的磁盘空间。
-
hard link
- 代表一个档案可以有多个名称
- 以文件副本的形式存在,但不占用实际空间
- 无法对目录创建
- 只能在同一个文件系统中创建
-
symbolic link
- 产生一个特殊的档案,档案的内容是指向另一个档案的位置
- 以路径的形式存在,类似于windows的快捷方式
- 可以对目录创建
- 可以跨越不同的文件系统
- 可以对不存在的文件名进行链接
2. 命令参数
Common Command
1.查看文件夹下文件和目录数目
文件: ls -l | grep '^-' | wc -l
目录: ls -l | grep '^d' | wc -l
2.ctrl-z
、ctrl-c
和ctrl-d
的区别
-
ctrl-z
:(suspend foreground process) 发送信号给前台进程组中的所有进程,常用于挂起一个进程,并没有结束进程,可以使用fg
(前台)/bg
(后台)恢复执行,对于fg
恢复被挂起的进程可以使用ctrl-z
再次挂起,而bg
命令无法再次挂起 -
ctrl-c
:(kill foreground process) 发送信号给前台进程组中的所有进程,强制终止程序的执行 -
ctrl-d
:(terminate input,exit shell) 一个特殊的二进制值,表示EOF,作用相当于在终端输入exit
后回车
3.Vim
文件格式转换
Windows文件格式为dos
,Linux文件格式为unix
-
查看文件格式: 命令行模式输入:
set ff
,显示fileformat=dos
-
转换文件格式: 1.dos_to_unix:
set ff=unix
2.unix_to_dos:set ff=dos
-
替换文件中
^M
符号:tr -d '\r'
-
中文乱码: 临时方法:打开
vim
,输入set encoding=utf-8
一次性方法:在.vimrc
文件中添加set encoding=utf-8
4.内容提取
basename
: 从文件名中去除目录和后缀
basename kernel/include/linux/stddef.h
得到stddef.h
basename kernel/include/linux/stddef.h .h
得到stddef
basename kernel/include/linux/stddef.h h
得到stddef.
basename kernel/include/linux/
或bsename kernel/include/linux
得到linux
5.shell
脚本执行显示错误bad substitution
这与shell
使用的是/bin/sh
,还是/bin/bash
有关系
代码
1.add header
#!/bin/bash
for file in /home/usrname/data/Drug_combination/header/*.txt
do
file_name_txt=`basename $file`
file_name=${file_name_txt%.*}
add_header=${file_name}_header.txt
echo $add_header
head -n 1 ${file} > ./header/add_header/${add_header}
done
cd /home/usrname/data/Drug_combination/header/add_header
paste SL_score_first_modify_header.txt Cancer_Mutation_Score_Modify_header.txt cancer_gene_sensus_TSG_header.txt Drug_Target_inhibitor_all_deduplication_header.txt | tr -d "\r" > add_header.txt
#!/bin/bash
for file in ./no_header_wt/*.txt
do
file_name=${file##.*/}
#split_mut_wild_wt_PTGS2+TP53_Valdecoxib-341.txt
before=${file_name%-*}
#split_mut_wild_wt_TOP1+TP53_Topotecan
Index_txt=${file_name##s*-}
#split_mut_wild_wt_TOP1+TP53_Topotecan-
Index=_${Index_txt%.*t}
#number
withHeader="_withHeader.txt"
add_withHeader="$before$Index$withHeader"
# echo ${file_name} , ${before} , ${Index} , ${add_withHeader}
cat split_mut_wild_selected_GDSC_header.txt ${file} > ./split_every_drug_wt_withHeader/${add_withHeader}
done
Share this post
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Pinterest