我有一个以这种格式存储数据的文件
ID;Name;Surname;Country
我需要能够找到并替换特定的数据,只需知道数据和数据的位置使用&#39 ;;'作为分隔符。
有点像
的结果grep -n" ID" [档案] | cut -d";" -f [位置]
但是替换为用户给定的字符串而不是显示
我认为我需要使用sed,但我发现的任何东西都没有用。
编辑:用户将从菜单中选择要修改的内容并提供ID,然后系统会提示他们输入替换字符串并了解存储数据的结构(ID /名称/ Surname / Country)字符串将在文本文件中相应替换。
答案 0 :(得分:2)
用awk:
echo 'ID;Data1;Data2;Data3' | awk -v id="ID" -v col=3 -v repl="foo" -F';' 'BEGIN{OFS=";";} $1==id {$col=repl;}1'
输出:
ID;Data1;foo;Data3