Replace 如何使用awk替换文件中所有行的前100个字符

Replace 如何使用awk替换文件中所有行的前100个字符,replace,awk,nawk,Replace,Awk,Nawk,如何使用awk替换文件中所有行的前100个字符?此文件中没有字段分隔符。所有字段都是固定宽度的。鉴于数据的变化,我不能使用搜索和替换 sed怎么样?要将前100个字符替换为sayA: $ sed -r 's/.{100}/A/' file 如果您对结果满意,请使用-i重写文件: $ sed -ri 's/.{100}/A/' file sed怎么样?要将前100个字符替换为sayA: $ sed -r 's/.{100}/A/' file 如果您对结果满意,请使用-i重写文件: $ sed

如何使用awk替换文件中所有行的前100个字符?此文件中没有字段分隔符。所有字段都是固定宽度的。鉴于数据的变化,我不能使用搜索和替换

sed怎么样?要将前100个字符替换为say
A

$ sed -r 's/.{100}/A/' file
如果您对结果满意,请使用
-i
重写文件:

$ sed -ri 's/.{100}/A/' file

sed怎么样?要将前100个字符替换为say
A

$ sed -r 's/.{100}/A/' file
如果您对结果满意,请使用
-i
重写文件:

$ sed -ri 's/.{100}/A/' file
使用纯贝壳

#!/usr/bin/env bash

# read each line into shell variable REPLY
while read -r ; do
   echo "REPLACE text ... ${REPLY:100}"
done <file
#/usr/bin/env bash
#将每一行读入shell变量REPLY
而read-r;做
echo“替换文本…${REPLY:100}”
完成使用纯壳

#!/usr/bin/env bash

# read each line into shell variable REPLY
while read -r ; do
   echo "REPLACE text ... ${REPLY:100}"
done <file
#/usr/bin/env bash
#将每一行读入shell变量REPLY
而read-r;做
echo“替换文本…${REPLY:100}”


“完成”不起作用。-r标志在我的版本中是非法的。带有855ST的sed的/{46}/“/”无效。-r标志在我的版本中是非法的。sed的/{46}/“/”和855ST一起尝试了这个,但没有成功。它基本上删除了整行,除了2个空格。使用855STI的nawk'{print''substr($11,46)}我认为您需要进一步研究您的文件格式。这是基本的gawk/nawk语法,你可以找到。@schwartzray,你为什么使用
$11
@Sigismundo使用了
$0
我使用了#11,因为我假设这是起始列。我真的希望用空格替换第11列到第46列。尝试了这个,但没有成功。它基本上删除了整行,除了2个空格。使用855STI的nawk'{print''substr($11,46)}我认为您需要进一步研究您的文件格式。这是基本的gawk/nawk语法,你可以找到。@schwartzray,你为什么使用
$11
@Sigismundo使用了
$0
我使用了#11,因为我假设这是起始列。我真的希望用空格替换第11列到第46列。不起作用。-r标志在我的版本中是非法的。sed's/{46}/''/,带有855sttry
sed's/\{100\}/replacement text/'
好的,这很有效。但我希望用相同数量的替换字符来替换这些字符——例如100个空格。我只需要使用替换文本,我猜最后我完成了这些命令集。他们为我工作。谢谢sed's/\{178\}/'带855ST>带855ST2*nawk'{sub(/^/,“…”);print}带855ST2>带855ST3*cut-c46-47带855ST3A*nawk'FNR==NR{a[++i]=0;next}{用855ST3A带855ST3>带855ST4*nawk'{sub sub(/,“0000000000”)打印a[FNR]“\t“$0}”“with855st4>With855st5不起作用。-r标志在我的版本中是非法的。sed's/{46}/''/,带有855sttry
sed's/\{100\}/replacement text/'
好的,这很有效。但我希望用相同数量的替换字符来替换这些字符——例如100个空格。我只需要使用替换文本,我猜最后我完成了这些命令集。他们为我工作。谢谢sed's/\{178\}/'带855ST>带855ST2*nawk'{sub(/^/,“…”);print}带855ST2>带855ST3*cut-c46-47带855ST3A*nawk'FNR==NR{a[++i]=0;next}{用855ST3A带855ST3>带855ST4*nawk'{sub sub(/,“0000000000”)打印a[FNR]“\t“$0}”'with855st4>with855st5+1:不知道
回复
变量。虽然您不是在数组中读取。您正在读取默认变量中的整行。否?添加了更多关于ReplyTanks@BMW的解释,也感谢链接+1:不知道
回复
变量。虽然您不是在数组中读取。您正在读取默认变量中的整行。否?添加了更多关于ReplyTanks@BMW的解释,也感谢链接!