一些强大的单行命令
1,输出in.txt文件的第 2,4 列
awk '{print $2,$4}' in.txt
2,输出第四列为’yes‘的行
awk '$4=="yes"' in.txt
3,输出第四列不为’yes‘的行
awk '$4!="yes"' in.txt
4,输出第三列满足正则表达式的行(不满足的话在~前加!即可)
awk '$3 ~ /^[a-g]/' in.txt
输出第二列大于第三列的行
awk '$2>$3' in.txt
将文件中所有的yes替换为Yes(并不更改原文件)
sed 's/yes/Yes/g' in.txt
输出文件中第二行以后的行
awk 'NR>2' in.txt
输出文件前三行(相当于head -n 3 in.txt)
awk 'NR<=3' in.txt
输出文件第二行到第五行之前的行
awk 'NR>=2&&NR<=5' in.txt
输出文件第一列的总和(让sum除以NR就能得到第一列的平均值)
awk '{sum+=$2}END{print sum}' in.txt
计算第二列和第三列的和并将其放在行末
awk '{print $0,$2+$3}' in.txt
输出两个文件中都有的行(-u 显示只出现一次的行)
sort file1 file2 | uniq -d
按文件的第二列大小排序
sort -gk2 in.txt
# -g, --general-numeric-sort
compare according to general numerical value
# -n, --numeric-sort
compare according to string numerical value
从文件中随机选取两行
shuf in.txt | head -n 2