基本上我拥有的是一个文本文件(file.txt),其中包含数字行(行不一定相同的长度),例如
1 2 3 4
5 6 7 8
9 10 11 12 13
我需要做的是编写新文件,删除每个数字,一次一个,替换例如第一个新文件将包含
2 3 4 <--- 移除第一个元素
5 6 7 8
9 10 11 12 13
第 7 个文件将包含
1 2 3 4
5 6 8 <--- 此处删除第 7 个元素
9 10 11 12 13
为了生成这些,我循环遍历每一行,然后是每一行中的每个元素。例如,对于第 7 个文件,我删除了第二行的第三个元素,我试图通过读取该行,删除适当的元素,然后重新插入这个新行来做到这一点
$lineNo is 2 (第二行)
$line is 5 6 7 8
with cut,我删除第三个数字,使 $newline 5 6 8
然后我尝试使用 sed 将 file.txt 中的 $lineNo 行替换为 $newline:
sed -n '$lineNo s/.*/'$newline'/' > file.txt
这完全行不通。我收到一个错误
sed: can't read 25.780000: No such file or directory
(其中 25.780000 是我的文本文件中的一个数字。看起来它正在尝试使用 $newline 来读取文件或其他东西)
我有理由怀疑我的方式说明要替换的行也不起作用:(
我的问题是,a)有没有比 sed 更好的方法来做到这一点,并且 b)如果 sed 是要走的路,我做错了什么?
谢谢!!