File 仅对文件的一列进行排序
我有一个这样的文件File 仅对文件的一列进行排序,file,bash,File,Bash,我有一个这样的文件 /device/000:004:00.7/vmkname = "vmnic8" /device/000:005:00.0/vmkname = "vmnic0" /device/000:005:00.1/vmkname = "vmnic4" /device/000:005:00.2/vmkname = "vmnic10" /device/000:005:00.3/vmkname = "vmnic11" 。。。。15行 我想这样改变它: /device/000:004:
/device/000:004:00.7/vmkname = "vmnic8"
/device/000:005:00.0/vmkname = "vmnic0"
/device/000:005:00.1/vmkname = "vmnic4"
/device/000:005:00.2/vmkname = "vmnic10"
/device/000:005:00.3/vmkname = "vmnic11"
。。。。15行
我想这样改变它:
/device/000:004:00.7/vmkname = "vmnic0"
/device/000:005:00.0/vmkname = "vmnic1"
/device/000:005:00.1/vmkname = "vmnic2"
/device/000:005:00.2/vmkname = "vmnic3"
…直到
/device/000:005:00.3/vmkname = "vmnic15"
这应该做到:
count=0
for i in `cat input_file.txt | cut -d " " -f1`
do
echo $i = \"vmnic$count\" >> output_file.txt
count=`expr $count + 1`
done
只需确保您的input_file.txt没有任何空行
perl -pe 's/\d+(")$/$i++.$1/e;' file
参见:
#!/bin/bash
c=0
while read a b; do
[[ "$a" ]] || continue
echo "$a = \"vmnic$((c++))\""
done < FILE > NEW_FILE
#/bin/bash
c=0
读a读b;做
[[“$a”]| |继续
echo“$a=\”vmnic$((c++)\”“
完成<文件>新建文件
Awk版本:
awk '{if ($1) {print $1, $2, "\"vmnic"c++"\""}else{print}}' FILE
您可以将输出重定向到新文件。对正在工作的智能代码段进行否决有什么问题?=)您是否忘记用真实文件替换文件?:/啊,好吧,我没有处理空行,但我已经编辑了我的代码片段来处理…简化版
awk'NF{print$1,$2“\“vmnic”c++“\”}!NF;'文件