SHELL 在指定行的前后插入指定内容

SHELL 在指定行的前后插入指定内容,第1张

文件

现在要在第二行即“bbbb”行的下面添加一行,内容为“xiaowu”

如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行

如果要在第二行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”

以上文件中只有一行匹配,如果文件中有两行或者多行匹配,结果有是如何呢?

由结果可知,每个匹配行的下一行都会被添加“xiaowu”

那么如果指向在第二个“bbbb”的下一行添加内容“xiaowu”,该如何 *** 作呢?

可以考虑先获取第二个“bbbb”行的行号,然后根据行号在此行的下一行添加“xiaowu”

获取第二个“bbbb”行的行号的方法:

方法一:

方法二:

由结果可知第二个“bbbb”行的行号为4,然后再在第四行的前或后添加相应的内容:

向指定行的末尾添加指定内容,比如在“ccccc”行的行尾介绍“ eeeee”

原文链接

查询有关资料和专业人士交流可以知道,shell给一个文件中的每一行开头插入字符的方法:awk '{print "X"$0}' fileName

shell给一个文件中的每一行结尾插入字符的方法:awk '{print $0"X"}' fileName

shell给一个文件中的每一行的指定列插入字符的方法:awk '$O=$O" X"' fileName

需求:

由于hive表中有大量的临时表,所以决定要想删除它们,这些表全是以t_开头。

因为hive的shell客户端不支持以某个字符开头或以正则表达式删除表,要么一个一个删,要么使用Java程序查出来再删。

*** 作过程:

1.把表全显示出来

show tables

2.把你要的表名复制到一个文件中

3.给文件中的每一行开头添加drop tables

awk '{print "drop table "$0}' aa.txt >bb.txt

4.给文件中的每一行结尾添加分号

awk '{print $0""}' bb.txt >cc.txt

5.直接复制到hive的shell客户端执行即可

1、^代表行首

2、$代表行尾

3、所有行首增加sed -i 's/^/ABC/' a.txt

4、所有行尾添加sed -i 's/$/XYZ/' a.txt

5、删除首行sed -i '1d' d.txt

6、删除末行sed -i '$d' d.txt

7、第5行添加sed -i '5 r 5.txt' a.txt

8、删除空行sed -i '/^$/d' a.txt

9、剔除空格sed -i 's/[ ]*//g' ~/vip1.txt

10、删除回车符sed -i 's/^M//g' a.txt

11、从fromstart这行下面添加内容sed -i '/fromstart/r 4.txt' 5.txt

12、第一列排序存文件awk '{print $1}' vip1.txt |sort -n >vip2.txt


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11505374.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存