我试图从文本文件第一行的开头删除匹配的模式( -import_file
)。使用sed
与 awk
似乎是可行的方法。
尝试
sed -i 's/^-import_file//g' /home/weather/f00.txt
f00.txt
-import_file file1 -rpn sto_1
-import_file file2 -rpn sto_2
-import_file file3 -rpn sto_3
-import_file file4 -rpn sto_4
-import_file file5 -rpn sto_5
-import_file file6
这似乎实际上并没有对第 1 行开头的第一个匹配模式执行任何操作。
最佳答案
请尝试这个几乎等效的 POSIX AWK 解决方案(删除编辑行中的前导空格):
awk 'NR==1 {$1=""; print substr($0,2); next} 1' ~weather/f00.txt > temp && mv temp ~weather/f00.txt
我无法在我的计算机上复制您的问题。
$ sed --version |head -1
sed (GNU sed) 4.4
$ sed '1s/^-import_file//g' ~weather/f00.txt
file1 -rpn sto_1
-import_file file2 -rpn sto_2
-import_file file3 -rpn sto_3
-import_file file4 -rpn sto_4
-import_file file5 -rpn sto_5
-import_file file6
关于linux - 从文本文件第一行的开头删除匹配的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56850280/