我有一个包含
等行的文本文件ABCD
1234
bear
Anders Ångström
我需要将其转换为
DBCA
4321
raeb
mörtsgnÅ srednA
我需要在命令行中执行此操作,因此我认为AWK是这项工作的最佳工具,但我可能错了。也许用Regex替换可以做到这一点? Notepad2知道Regex替换。
稍后编辑:我需要在Windows中执行此操作(我使用的是GNUWin32工具),我需要使用它来处理Å,ö,ë,Ş,Ĕ等Unicode字符。
答案 0 :(得分:3)
使用rev
命令,如下所示。
$ rev < file
DCBA
4321
raeb
答案 1 :(得分:1)
使用rev命令尝试此操作:
rev File
<强>示例:强>
AMD$ cat File
ABCD
1234
bear
AMD$ rev File
DCBA
4321
raeb
man rev :
The rev utility copies the specified files to the standard output,
reversing the order of characters in every line. If no files are speci-
fied, the standard input is read.
答案 2 :(得分:1)
这是awk
awk -vFS= '{do printf $(NF);while(--NF>0);print ""}' file
DCBA
4321
raeb
或者像这样:
awk -vFS= '{for (i=NF;i>=1;i--) printf $(i);print ""}' file
DCBA
4321
raeb
要正确使用printf
,请将其从printf $(i)
更改为printf "%s",$(i)
答案 3 :(得分:1)
如果您对Sed解决方案感兴趣,请点击此处:
+$ sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' <<EOF
+> ABCD
+> 1234
+> bear
+> EOF
DCBA
4321
raeb
您可以在http://sed.sourceforge.net/sed1line.txt的Sed中找到更多只写程序。
答案 4 :(得分:0)
这perl
可能会这样做
但不确定您是否有perl
用于Windows。如果没有,请将文件复制到Linux服务器,转换它。
perl -ne 'chomp;print scalar reverse . "\n";' file
DCBA
4321
raeb
mörtsgnÅ srednA
这个bash脚本也适用于linux
cat convert
#!/bin/bash
input="$1"
for (( i=${#input}-1; i>=0; i-- ));do
reverse="$reverse${input:$i:1}"
done
echo "$reverse"
./convert Ångström
mörtsgnÅ
答案 5 :(得分:-1)
您可以使用rev命令。
rev < filename > output filename
输出将存储在文件中。如果您没有给出它将在stdout中打印