我的文件包含以下内容
A B C
1 2 3
4 5 6
7 8 9
让我们说用户输入1 然后该文件应更改为
A B C
X 2 3
4 5 6
7 8 9
或者如果用户输入1,2那么文件应该改为
A B C
X X 3
4 5 6
7 8 9
我是bash的新手,所以感谢任何帮助
答案 0 :(得分:1)
awk
救援!
$ awk -v cols="$cols" 'NR==2{n=split(cols,f,",");
for(i=1;i<=n;i++) sub($i,"X")}1' file
假设您的用户输入已分配给bash变量cols
。将值传递给awk
,名称相同。找到值并一次只替换第二行;打印所有行。
答案 1 :(得分:0)
我们假设数据文件命名为matrix.txt,我们制作一个脚本来编辑数据文件的内容。
matrix.txt:
A B C
1 2 3
4 5 6
7 8 9
我们制作这个剧本:
matrix_script.sh:
read -p "Input: " input
sed "s/$input/X/g" matrix | tee matrix
这会改变你用X&#39;
写的数字读取命令从键盘读取,直到您按下“输入”键。 &#39; -p&#39;选项在您可以写之前写入消息。输入&#39;变量是&#39;读取&#39;命令存储您编写的值。
&#39; sed&#39;命令用于替换其他字符。我们说sed我们想要替换&#39;输入&#39; &#39; X&#39;的变量&#39;矩阵中的字符&#39;文件。这会复制矩阵文件的内容,但不会在输入文件上写入更改。为了解决这个问题,我们复制了sed命令的输出(使用&#39; tee&#39;命令),其中一个输出将写入&#39;矩阵&#39;文件。
如果此脚本可以正常工作,请尝试并与我们联系。
再见