Bash 我如何替换连续的“\";只有一个“\";来自变量中的字符串

Bash 我如何替换连续的“\";只有一个“\";来自变量中的字符串,bash,sed,Bash,Sed,(我将使用u而不是空白和\n而不是换行来更好地描述这种情况:) 如果我执行 str_text=`vilistextum -u -p - - <<< "$str_html"`; printf "$str_text" 我试过类似的东西 str_text=`vilistextum -u -p - - <<< "$str_html" | sed 's/\n//g'`; str_text=`vilistextum-u-p---把你的问题变成: 如何删除只有空白字符

(我将使用u而不是空白和\n而不是换行来更好地描述这种情况:)

如果我执行

str_text=`vilistextum -u -p - - <<< "$str_html"`;
printf "$str_text"
我试过类似的东西

str_text=`vilistextum -u -p - - <<< "$str_html"  | sed 's/\n//g'`;

str_text=`vilistextum-u-p---把你的问题变成:

如何删除只有空白字符的行

答案是

grep -E \\w
如果还希望消除非空行中的尾随空格,请执行以下操作:

grep -E \\w | sed -r 's/ +$//g'

使用
awk
您可以尝试以下操作:

THISISAWord \n_ \n___ \n_ ANOTHERWORD \n_ ... \n__ ANOTHERWORD \n \n \n__ \n_
THISISAWord
\n
ANOTHERWORD
\n
ANOTHERWORD
awk 'NF{print $0}' ORS='\n\n' <<< "$str_text"

awk'NF{print$0}ORS='\n\n'仅查看包含某些内容的行:

格雷普。文件

发现

手册页:

句点(.)在括号表达式之外使用时,是一个基本的正则表达式,它匹配任何可打印或不可打印的字符,除了


这应该是你想要的

cmd | sed -n 's/.*[^[:space:]].*/&\n/p'
  • -n
    开关关闭默认的打印每行行为
  • s/./../p
    表示打印发生替换的行
  • &
    包含与
    s//
    左侧的整个模式匹配的字符串
如果一行至少包含一个非空白字符,请在该行末尾添加一个换行符。否则(仅包含换行符和空格等空白字符的行), 别理他们


sed的/\n//g'
不起作用,因为
sed
使用换行符作为记录分隔符。因此,它将文件视为
line1\nline2\nline3
等,而不是
line1
line2
line3

    Kaizen ~/so_test $  cat ztempfile3.txt | nl | grep -v '\n' | tr '[0-9]' '\n'

    THISISAWord

    ANOTHERWORD

    ANOTHERWORD

我只是在尝试。。。。。这有帮助吗?

你有实际的
\n
吗,还是那些换行符?@eichertc你能用你遇到的问题更新你的问题吗?不要将解决方案编辑到问题中-这就是绿色复选标记(接受)的作用,说明什么样的解决方案对你有效。你为什么说:很难说出这里要问什么。?我的英语不是很好,但我想你知道什么是连续的新行。它返回类似:
??getopt返回字符代码0165 u\n最后一行
用于哪个源?把它上传到某个地方。
$ str_text=$(awk 'NF{print $0}' ORS='\n\n' <<< "$str_text")
$ echo "$str_text"
THISISAWORD

ANOTHERWORD

ANOTHERWORD
cmd | sed -n 's/.*[^[:space:]].*/&\n/p'
    Kaizen ~/so_test $  cat ztempfile3.txt | nl | grep -v '\n' | tr '[0-9]' '\n'

    THISISAWord

    ANOTHERWORD

    ANOTHERWORD