我得到一个.csv文件,其中最后一行有页脚值 例如:
896312,3251040212,3251040212,P5,7052016,7072016,0,$0.00,N,1
896312,3251067611,3251067611,P5,7052016,7072016,0,$0.00,N,1
**WOR_FOOTER_20160705100007_000000010_WOR_896312_20160705_100007.csv**--This is footer.
我需要用VWOR_FOOTER_20160705100007_000000010_VWOR896312_20160705_100007.csv
在unix中。请帮忙。感谢
答案 0 :(得分:4)
sed -i.bak '$s/WOR/VWOR/g' file
应该这样做。
<强>解释强>
$
选择最后一行。s/WOR/VWOR/g
进行全局替换。-i
代表inplace edit,这意味着直接修改文件。将自动创建.bak
的备份。修改强>
如果你的shell不支持inplace edit do
sed '$s/WOR/VWOR/g' file >tempfile && mv tempfile file
修改强>
如果WOR_FOOTER
是唯一的并且保证只出现在一行中,那么您可以执行以下操作:
sed '/WOR_FOOTER/s/WOR/VWOR/g' file >tempfile && mv tempfile file
答案 1 :(得分:1)
sed是这样做的方式,因为它是单个线路上的简单替换,这是最好的选择,但只是便携式awk中的FYI它是:
awk 'NR>1{print prev} {prev=$0} END{gsub(/WOR/,"VWOR",prev); print prev}'
答案 2 :(得分:-3)
假设您没有任何其他情况发生的情况。在文件中:
sed -i 's/WOR/VWOR/g' <file_name>