当前位置: 技术问答>linux和unix
请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
来源: 互联网 发布时间:2016-03-10
本文导语: 请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!! | 给你来个perl的脚本 #!/usr/bin/perl if($#ARGV != 0) { print "Usage $0 filenamen...
请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
|
给你来个perl的脚本
#!/usr/bin/perl
if($#ARGV != 0) {
print "Usage $0 filenamen";
exit(-1);
}
my @lines = split(/|/, `cat ¥ARGV[0]`);
$lines[24] .= " ";
print join("|", @lines);
如果是在命令行,不用脚本,可以这样:
perl -e '@lines = split(/|/, `cat /work/1.txt`);$lines[24] .= " ";print join("|", @lines);' > /tmp/1.txt
#!/usr/bin/perl
if($#ARGV != 0) {
print "Usage $0 filenamen";
exit(-1);
}
my @lines = split(/|/, `cat ¥ARGV[0]`);
$lines[24] .= " ";
print join("|", @lines);
如果是在命令行,不用脚本,可以这样:
perl -e '@lines = split(/|/, `cat /work/1.txt`);$lines[24] .= " ";print join("|", @lines);' > /tmp/1.txt
|
用sed即可:
echo "1234567890"|sed 's/.{4}/& /'
&表示前面匹配的内容。.{4}表示匹配任意4个字符,前面的s表示替换。
输出结果是1234 567890,在第4个字符后面加上一个空格
echo "1234567890"|sed 's/.{4}/& /'
&表示前面匹配的内容。.{4}表示匹配任意4个字符,前面的s表示替换。
输出结果是1234 567890,在第4个字符后面加上一个空格
|
[code=BatchFile]cat test.txt ||awk '{print $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $$14 $15 $16 $17 " " $18 $19 $20}'[/code]