行命令:nl、sort、uniq、wc、tr、tail、col、expand、paste、join、xargs、-

# nl行号命令
nl tab.txt
 
# sort 行排序
sort 1.txt    「 字符排序 」 
sort -n 2.txt
-n 数值排序
-M     识别三字符的月份名
-t 分隔符
-k 排序的字段
-r 降序
-u 去重
 
 
du -k | sort -nr    「 按文件大小倒序 」 
sort -t ':' -k 3 -n /etc/passwd    「 用户ID排序 」 
cut -d: -f3 passwd | sort -n
sort -t: -k3  -nr passwd
last | cut -d' ' -f1 | sort -u
 
# uniq 去重
last | cut -d' ' -f1 | sort | uniq -c
-c 统计重复次数
 
# wc统计
wc passwd
格式:    [-l  行数]    [-w 单词数]    [-c 字符数]
ls -1 | wc -l
 
# tr字符转换   
简写:translate
tr 'a-z' 'A-Z' < passwd    「 小写转大写 」 
tr 'a-z' 'A-Z' < passwd > PASSWD    「 另存为 」 
cat PASSWD | tr 'A-Z' 'a-z'
cat passwd | tr 'a-z' 'A-Z’
tr -d ':' < PASSWD
  • -d 「  delete 」 
cat /etc/passwd | grep '^root' | tr -d ':'
 
# tail 尾行
tail -7 last.txt    
tail last.txt    「 默认尾10行 」 
 
cat -A tab.txt    「 --show-all  & 所有字符」 
11^I22^I33$    「 <Tab> 」 
aa^Ibb^Icc$
linux^I^Imysql^I^Iphp^I^Iapache^I^Inginx$
 
# col将 tab键替换成空格
cat tab.txt | col -x    「 tab替换成空格 」 
man col | col -b > test.txt
  • -b 仅保留反斜杠最后保留的字符,转存文本文件
  • -x 将tap替换成空格
 
expand将 tab键替换成空格
cat tab.txt | expand | cat -A    「 tab替换成空格 」
 
# paste 以 [Tap] 键合并行
paste 1.txt 2.txt | cat -A
date | paste 1.txt 2.txt -    「 减号 standard input 」 
paste 1.txt 2.txt
a    a    1    1
b    b    2    2
c    c    3    3
head /etc/passwd > passwd
head /etc/group > group
paste passwd group
root:x:0:0:root:yyyyyyyyyyyyyyy    root:x:0:
bin:x:1:1:bin:/byyyyyyyyyyyyyyy    bin:x:1:
daemon:x:2:2:daeyyyyyyyyyyyyyyy    daemon:x:2:
adm:x:3:4:adm:/var/adm:/yyyyyyy    sys:x:3:
lp:x:4:7:lp:/var/yyyyyyyyyyyyyy    adm:x:4:
sync:x:5:0:sync:/yyyyyyyyyyyyyy    tty:x:5:
shutdown:x:6:0:shutdoyyyyyyyyyy    disk:x:6:
halt:x:7:0:halt:/sbinyyyyyyyyyy    lp:x:7:
mail:x:8:12:mail:/varyyyyyyyyyy    mem:x:8:
operator:x:11:0:operayyyyyyyyyy    kmem:x:9:
 
# join智能拼接行
head /etc/group | sort > group
cat group
cat passwd
join -t: passwd group
-t 分隔符,默认第一列为关联字段
adm:x:3:4:adm:/var/adm:/yyyyyyy:x:4:
bin:x:1:1:bin:/byyyyyyyyyyyyyyy:x:1:
daemon:x:2:2:daeyyyyyyyyyyyyyyy:x:2:
lp:x:4:7:lp:/var/yyyyyyyyyyyyyy:x:7:
root:x:0:0:root:yyyyyyyyyyyyyyy:x:0:
cat 1.txt
1:2:3:4:5:6
cat 2.txt
5:6:7:8:9:0
join -t: -1 5 1.txt -2 1 2.txt    「 -1 5 第一个文件的第5列 -2 1 第二个文件的第1列 关联 」 
5:1:2:3:4:6:6:7:8:9:0
 
#xargs 文件列表
touch file{1,2,3}
ls file*
  • file1  file2  file3
find . -name 'file*' | ls -l    「 ls -l . 」 
find . -name 'file*' |xargs ls -l
find ~/Desktop/ -name '*.pdf' -print0 | xargs -0 du -h
  • -print0 输出文件名并以null结尾
  • -0 输入文件名以null结尾
 
# 减号
tar cf - /etc | tar xf -
-      代表包名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
k1++; } else if (board[i+k][j+k] == -turn || k1 == 0) { if (k1 > 0) { k2++; } k1 = 0; } if (k1 ==Bash管道(pipe)命令是将多个命令通过管道符(|)连接在一起,使得前一个 6) { value += 10000; } else if (k1 > 0 && i+k > 0 && i命令的输出成为下一个命令的输入,以此类推,形成一个流水线。下面是常+k < ROWS - 1 && j+k > 0 && j+k < COLS - 1 && board[i+k-1用的一些命令: 1. cut:用于剪切文本文件中的字段,可以按列或字符位置进][j+k-1] == 0 && board[i+k+1][j+k+1] == 0) { value +=剪切。 示例: ``` cut -d',' -f1 file.csv # 按逗号分隔,提取第一 100; // 可以成五 } else if (k1 > 0 && i+k > 0 && i+k <列 cut -c1-5 file.txt # 提取文本文件的前5个字符 ``` 2. grep: ROWS - 1 && j+k > 0 && board[i+k-1][j+k-1] == 0) { value += 10; // 可以成四 } else if (k1 > 0 && i+k < ROWS - 用于按照指定的模式搜索文本文件中的内容,并将匹配的输出。 示例: ``` 1 && j+k < COLS - 1 && board[i+k+1][j+k+1] == 0) { valuegrep 'pattern' file.txt # 搜索文本文件中包含pattern的 grep -v 'pattern' file.txt # += 10; // 可以成四 } else if (k1 > 0 && i+k > 1 && j+k 搜索文本文件中不包含pattern的 ``` 3. sort:用于对文本文件的排序。 > 1 && board[i+k-1][j+k-1] == turn && board[i+k-2][j+k-2]示例: ``` sort file.txt # 按照字典序升序排序 sort -n file.txt # 按照数字 == 0) { value += 5; // 可以成三 } else if (k1 > 0 && i大小升序排序 ``` 4. wc:用于统计文本文件中的数、单词数和字符数+k < ROWS - 2 && j+k < COLS - 2 && board[i+k+1][j+k+1] ==。 示例: ``` wc -l file.txt # 统计文本文件的wc -w file.txt # turn && board[i+k+2][j+k+2] == 0) { value += 5; // 可以成三 统计文本文件的单词数 wc -c file.txt # 统计文本文件的字符数 ``` 5 } } if (k1 > 0) { k2++; } if (k2 > . uniq:用于去除文本文件中的重复。 示例: ``` sort file.txt | uniq # 将0) { value += k2 * k2; // 连子数越多,价值越高 } k1文本文件排序并去重 ``` 6. tee:用于将命令的输出同时输出到屏幕和文件中 = 0; k2 = 0; } } // 左下到右上 for (int i =。 示例: ``` ls -l | tee file.txt # 将ls命令的输出同时输出到屏幕和文件中 5; i < ROWS; i++) { for (int j = 0; j < COLS - 5; j ``` 7. tr:用于对文本文件进字符转换。 示例: ``` tr 'a-z' '++) { for (int k = 0; k < 6; k++) { if (board[i-k][j+k]A-Z' file.txt # 将文本文件中的小写字母转换为大写字母 ``` 8. == turn) { k1++; } else if (board[i-k][j+k] == -turn || k1 == 0) { if (k1 > 0) { k2++; } k1 = 0; } col:用于过滤文本文件中的控制字符。 示例: ``` col -b file.txt # 过滤 if (k1 == 6) { value += 10000; } else if (k1 > 0 && i-k文本文件中的控制字符 ``` 9. join:用于将两个文本文件中的相同字段进 > 0 && i-k < ROWS - 1 && j+k > 0 && j+k < COLS - 1 && 合并。 示例: ``` join file1.txt file2.txt # 将file1.txt和file2.txt中相同的 board[i-k-1][j+k+1] == 0 && board[i-k+1][j+k-1] == 0字段合并 ``` 10. paste:用于将两个文本文件的对应合并成一。 示) { value += 100; // 可以成五 } else if (k1 > 0 && i-k < ROW例: ``` paste file1.txt file2.txt # 将file1.txt和file2.txt的对应合并成一S - 1 && j+k > 0 && j+k < COLS - 1 && board[i-k+1][j+k ``` 11. expand:用于将文本文件中的制表符转换为空格。 示例: ``` expand file.txt # 将文本文件中的制表符转换为空格 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值