linux 如何读取文件并删除每一行的字段,然后向每一行添加额外的行

gmxoilav  于 2023-02-11  发布在  Linux
关注(0)|答案(1)|浏览(119)

我有两个shell脚本,读取文件(file1)并删除文件的第一个字段(输出结果重定向到file2),然后第二个脚本再次读取上述修改的文件(file2),然后添加额外的字段到每行(file3),如何在单个脚本中完成此操作,而不使用两个shell脚本。

#!/bin/bash
#  loop on all .txt files
for i in File1.txt; do
#  remove first column
cut -d' ' -f2- < $i > File2.txt
done  

#!/bin/bash
filename='File2.txt'
while read line; do
# reading each line
echo "$RANDOM $line" >> File3.txt
done < $filename

File1.txt
Date Field2 Field3
20111 aaaa  bbbb
33111 bbbb  vvvv
44444 cccc  gggg

File2.txt
Field2 Field3
aaaa  bbbb
bbbb  vvvv
cccc  gggg

File3.txt
New  Field2 Fileld3
1    aaaa  bbbb
2    bbbb  vvvv
1    cccc  gggg
ekqde3dh

ekqde3dh1#

一个想法:

new="New"

while read -r ignore rest_of_line
do
    echo "$new $rest_of_line"
    new=$RANDOM
done < file1.txt > file3.txt

这将产生:

$ cat file3.txt
New Field2 Field3
29258 aaaa  bbbb
31885 bbbb  vvvv
15550 cccc  gggg
    • 注意:**不清楚(对我来说)输入/输出字段的分隔符是什么,所以现在我假设输入中有任何空格,输出中有一个空格;应(相对)易于根据OP的要求进行修改

相关问题