1. cp复制文件到多个目录
echo dir1 dir2 ... dirN | xargs -n 1 cp -v dir(要复制的文件的路径)
上面的命令中,目录的路径(dir1、dir2、dir3...dirN)被管道作为输入到 xargs 命令中,含义是:
.-n 1 - 告诉 xargs 命令每个命令行最多使用一个参数,并发送到 cp 命令中。
.cp – 用于复制文件。
.-v– 启用详细模式来显示更多复制细节。
. 效果就是dir所制定的文件或目录被分别复制到dir1,dir2...中
2.sed全局替换字符
sed -i "s/hone/home/g" 6379.conf
3. linux命令均匀分割文件(按行)
split -l 100000 data shiwan
参数: 行数 待分割文件 分割后文件名前缀
eg:
4.linux ls跳过第一行显示:
hdfs dfs -ls /user | tail -n +2
[hadoop@nlkfpt-cxds-02 ~]$ hdfs dfs -ls /user
Found 4 items
drwx------ - hadoop hadoop 0 2019-01-17 10:23 /user/hadoop
drwx------ - hdfs supergroup 0 2019-01-16 15:38 /user/hdfs
drwxrwxrwx - mapred hadoop 0 2019-01-15 16:26 /user/history
drwx------ - wkz wkz 0 2019-01-16 15:00 /user/wkz
[hadoop@nlkfpt-cxds-02 ~]$ hdfs dfs -ls /user | tail -n +2
drwx------ - hadoop hadoop 0 2019-01-17 10:23 /user/hadoop
drwx------ - hdfs supergroup 0 2019-01-16 15:38 /user/hdfs
drwxrwxrwx - mapred hadoop 0 2019-01-15 16:26 /user/history
drwx------ - wkz wkz 0 2019-01-16 15:00 /user/wkz
[hadoop@nlkfpt-cxds-02 ~]$ hdfs dfs -ls /user | tail -n +2 | awk -F "/" '{print "/"$2"/"$3 }'
/user/hadoop
/user/hdfs
/user/history
/user/wkz
5.把每一行的一个或多个空格替换为逗号
cat word.txt | sed 's/\s\+/,/g'其中\s代表空格,+代表出现一次或多次。
cat word.txt | sed 's/[ ][ ]*/,/g'
转载来自:https://blog.csdn.net/tterminator/article/details/52792959
一、原始文本word.txt内容
a c b d
d b c a
a c d b
c a r s
d s g h
1
2
3
4
5
二、shell脚本
cat word.txt | sed 's/[ ][ ]*/,/g'
1
脚本说明:
s代表替换指令;
每个[ ]都包含有一个空格;
*号代表0个或多个;
g代表替换每行的所有匹配;
还有一种方式,但该方式在mac下替换失败:
cat word.txt | sed 's/\s\+/,/g'其中\s代表空格,+代表出现一次或多次。
三、替换效果
a,c,b,d
d,b,c,a
a,c,d,b
c,a,r,s
d,s,g,h
6.排序后查看文件中出现的包含took,cost行的各自总行数
egrep -o "Slow.*?(took|cost)" /path/to/current/datanode/log | sort | uniq -c
该命令将提供DataNode日志中所有“Slow”消息的计数。输出将类似于:
1000 Slow BlockReceiver write data to disk cost 234 Slow BlockReceiver write packet to mirror took 4 Slow flushOrSync took 6 Slow manageWriterOsCache took