linux中如何在多个单词前添加字符
这是一个包含许多单词的文本文件,每个单词之间用空格或换行符分隔。 现在我想在每个字符前面添加一个字符,如“#”“$”@, 我发现一个接一个的做这个工作会花费太多时间,linux中如何在多个单词前添加字符,linux,bash,Linux,Bash,这是一个包含许多单词的文本文件,每个单词之间用空格或换行符分隔。 现在我想在每个字符前面添加一个字符,如“#”“$”@, 我发现一个接一个的做这个工作会花费太多时间, 在bash中有更好的方法吗 使用sed,您可以说: sed 's/\b\w/#&/g' inputfile 这将在每个单词之前附加。使用sed,您可以说: sed 's/\b\w/#&/g' inputfile 这将在每个单词之前添加。尝试使用sed sed -r 's/([^ ]+)/@\1/g' file
在bash中有更好的方法吗 使用
sed
,您可以说:
sed 's/\b\w/#&/g' inputfile
这将在每个单词之前附加
。使用sed
,您可以说:
sed 's/\b\w/#&/g' inputfile
这将在每个单词之前添加
。尝试使用sed
sed -r 's/([^ ]+)/@\1/g' file
或者更简单地说
sed -r 's/[^ ]+/@&/g' file
样本输入
abc def pqr-stu xyz
输出
@abc @def @pqr-stu @xyz
尝试使用
sed
sed -r 's/([^ ]+)/@\1/g' file
或者更简单地说
sed -r 's/[^ ]+/@&/g' file
样本输入
abc def pqr-stu xyz
输出
@abc @def @pqr-stu @xyz
如果出现
abc-def
,这将失败,我只想一个单词,结果将是#abc-#def
。OP说单词之间只有空格、换行符或换行符。在这种情况下,将\w替换为\s会产生输出\abc\def
。我需要是\S+
如果出现abc def
,这将失败,我只想一个单词,结果将是\abc-\def
。OP说单词之间只有空格、换行符或换行符。在这种情况下,将\w替换为\s会产生输出\abc\def
。我需要成为\S+
好极了,谢谢你,兄弟!太好了,谢谢你,兄弟!