用常数代替列的第二位数 linux

问题描述 投票:0回答:1

我有一个类似的表格,我想用自动化的方式(因为这是一个大表格),将第二个表格的第二位数字修改为0,这样我就有了十年组,而不是准确的年龄数字。

Person age
name1 45
name2 13
name3 28
name4 89

我想用一种自动化的方式(因为这是一个大表),将第二个表的第二位数字修改为0,这样我就有了十年组而不是准确的年龄数字。

Person age
name1 40
name2 10
name3 20
name4 80

哪种方法最简单?谢谢!

linux substitution editing
1个回答
0
投票

试试这个脚本,它可以做到这一点(只需从你的输入文件中删除第一行)。

#!/bin/bash

file_path="/home/mobaxterm/Desktop/f.txt"
dest_file="/home/mobaxterm/Desktop/f2.txt"

echo "Person age" > /home/mobaxterm/Desktop/f2.txt
while read p; do

  name=$(echo "$p" | cut -f1 -d' ')
  age=$(echo "$p" | cut -f2 -d' ' | sed 's/\(.\{1\}\)./\10/')
  echo "$name $age" >> /home/mobaxterm/Desktop/f2.txt

done < $file_path
© www.soinside.com 2019 - 2024. All rights reserved.