我是这个平台的新手。只是有一个要求,我一直在工作,但无法找到它。
如果这种模式发生在一条线的中间。如何处理它。假设线条像。 aaaa ---- bbbb。如果我想擦除---- bbbb部分怎么做。但我想保留文件中的aaaa部分。
由于
答案 0 :(得分:4)
您可以使用sed轻松完成:
sed -r 's/^--.*//' inputfile > outputfile
或到位:
sed -r -i.bak 's/^--.*//' inputfile
这将在修改文件
之前创建inputfile.bak作为备份答案 1 :(得分:2)
这是一个很好的旧bash
解决方案:
while read -r line; do
echo "${line/#--*/}"
done < inputFile > outputFile
答案 2 :(得分:1)
使用awk的一种方式:
awk '/^--/{$0=" ";}1' file
当以 -
开头时,这将用空格替换该行答案 3 :(得分:0)
从您的问题陈述中不清楚解决方案的标准(限制)是什么。 您正在寻找的是支持正则表达式的东西。有许多UNIX / Linux工具可用于解决此问题。
一个简单的解决方案是:
# cat file.txt | sed -e "{s/^--.*/ /}"
正则表达式&#34; ^ - 。&#34;将匹配任何行开头&#34; ^&#34;用&#34; - &#34;其次 任意数量的字符&#34;。&#34;。 &#34; S&#34;是sed替换命令。
所以&#34; s /^--.*/ /&#34;意味着,替换以 - 开头的所有行 - 并且后面跟着任何行 单个空格的字符数。