nl
nl - 带行号的显示文件内容
一看这个功能就感觉好熟悉有没有!
一方面这个功能好常见,显示文件内容,我一下子能想起cat、less、more……等等指令,(这些指令功能相似,当细节上肯定不同的,只是我们现在都不太在意这些而已);
另一方面就是很少听说它;
对于这个指令,确实用cat -n就可以代替,而且平时没有非得把行号打印出来才行的情况,所以对这个指令了解少,也正常。本着shell学习的态度,对常用指令都做一个简单介绍,方便查询!
1.cat -n 和 nl对比:
root@ubuntu:~/nfs# cat -n Makefile
1 INC_DIR=./include
2 BIN_DIR=./bin
3 SRC_DIR=./src
4 OBJ_DIR=./obj
5
6 SRC=${wildcard ${SRC_DIR}/*.c}
7 OBJ=${patsubst %.c, $(OBJ_DIR)/%.o, ${notdir ${SRC}}}
8
9 TARGET=main.out
10 BIN_TARGET=${BIN_DIR}/${TARGET}
11
12 #pc:
13 #CC = gcc
14 #arm:
15 CC = arm-linux-gnueabihf-gcc
16
17 CFLAGS = -g -Wall -I${INC_DIR}
18
19 ${BIN_TARGET}:${OBJ}
20 ${CC} ${OBJ} -o $@ -lpthread -lsqlite3
21 ${OBJ_DIR}/%.o:${SRC_DIR}/%.c
22 ${CC} ${CFLAGS} -c $< -o $@ -lpthread -lsqlite3
23
24 .PHONY:clean
25 clean:
26 find ${OBJ_DIR} -name *.o -exec rm -f {} \;
27 rm -rf ${BIN_TARGET}
28
root@ubuntu:~/nfs# nl Makefile
1 INC_DIR=./include
2 BIN_DIR=./bin
3 SRC_DIR=./src
4 OBJ_DIR=./obj
5 SRC=${wildcard ${SRC_DIR}/*.c}
6 OBJ=${patsubst %.c, $(OBJ_DIR)/%.o, ${notdir ${SRC}}}
7 TARGET=main.out
8 BIN_TARGET=${BIN_DIR}/${TARGET}
9 #pc:
10 #CC = gcc
11 #arm:
12 CC = arm-linux-gnueabihf-gcc
13 CFLAGS = -g -Wall -I${INC_DIR}
14 ${BIN_TARGET}:${OBJ}
15 ${CC} ${OBJ} -o $@ -lpthread -lsqlite3
16 ${OBJ_DIR}/%.o:${SRC_DIR}/%.c
17 ${CC} ${CFLAGS} -c $< -o $@ -lpthread -lsqlite3
18 .PHONY:clean
19 clean:
20 find ${OBJ_DIR} -name *.o -exec rm -f {} \;
21 rm -rf ${BIN_TARGET}
其他用法:
root@ubuntu:~/nfs# nl -n ln run.sh
1 #!/bin/bash
2 nohup ./main.out > /mnt/platform/nfs/nohup.out>&1 &
root@ubuntu:~/nfs# nl -n rz run.sh
000001 #!/bin/bash
000002 nohup ./main.out > /mnt/platform/nfs/nohup.out>&1 &
root@ubuntu:~/nfs# nl -w 3 run.sh
1 #!/bin/bash
2 nohup ./main.out > /mnt/platform/nfs/nohup.out>&1 &
root@ubuntu:~/nfs#