Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 仅对文件的一列进行排序_File_Bash - Fatal编程技术网

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;'文件