在shell中将垂直文本转换为水平

时间:2016-09-30 11:59:54

标签: shell text file-manipulation

我在shell中执行某些任务时只是考虑了这个问题。

如何转换包含以下格式[垂直方向]的文字的 Button button1 = (Button)view; String btnTag= button1.getTag().toString(); // For First Time when button is clicked if (btnTag.equals("") || btnTag.equals("CLICKED2")) { R1btn.setBackgroundColor(Color.RED); R2btn.setBackgroundColor(Color.GREEN)); R3btn.setBackgroundColor(Color.GREEN)); button1.setTag("CLICKED1"); } else if (btnTag.equals("CLICKED1")) { button1.setTag("CLICKED2"); Intent intent = new Intent(Activity2.this, Activity3.class); startActivity(intent); } break; 文件:


public class DALConnection 
{
      public DALConnection(string _conString)
      {
            if(!String.IsNullOrEmpty(_conString))
            {
                con=new SqlConnection(_conString);
            }
            else 
            {
                //error handling
            }
      }      

      private SqlConnection con;

}

public class DataAccessOperation: DALConnection 
{
      public DataAccessOperation (string _conString) :base (_conString)
      {
      }


}
  

注意: 没有任何字母的行包含空格和EOL

我需要转换为:

.txt

我尝试了以下命令:H e l l o W o r l d

输出:

Hello World

我该如何进一步处理?对不起,如果这个问题已经出现了。如果是这样,请向我提供解决方案的链接或任何解决方案的命令。

4 个答案:

答案 0 :(得分:2)

你很亲密...... :-)
-d命令有cat file1.txt | tr -d '\n' > file2.txt 选项删除 charactar类,而不仅仅是替换。
所以:

cat file1.txt | perl -p -i -e 's/\n(.+)/$1/' > file2.txt

只会......

更新:OP评论后,这是一个保留空新行的版本:

{{1}}

答案 1 :(得分:1)

您正在用空格替换新行。而是使用-d删除它们:

$ echo "H
> e
>                   # <- there is a space here
> W
> o" | tr -d '\n'
He Wo

使用文件:

tr -d '\n' < file   # there is no need to `cat`!

这里的问题是删除了最后一个新行,因此结果是POSIXly为0行文件。

答案 2 :(得分:1)

示例数据:

echo "$x"
H
e
l
l
o

W
o
r
l
d

解决方案:

  echo "$x"  |sed 's/^$/bla/'|awk 'BEGIN{OFS="";ORS=" ";RS="bla"}{$1=$1}1'
  Hello World 

答案 3 :(得分:0)

在完成所有建议和一点点研究后,我找到了解决方案,为此编写了一个脚本:

#!/bin/bash
#Converting text to horizontal direction

IFS=''
while read line
do
   echo -n $line
done < $1 > $2           # $1 --> file1.txt contain vertical text as mentioned in the question
echo "$(cat $2)"

命令:

$./convert.sh file1.txt file2.txt

输出:

Hello World