我有一份文件,里面有一个名字的列表。我试图搜索具有特定字符串组的名称,并将它们打印到shell中的一个新文件中。你能帮忙吗?
这是我在看的。文本文件(names.txt)包含的名称如下
New York_USA
Delhi
Moscow
Tokyo
Austin_USA
Beijing
Chicago_USA
我正试图在一个单独的文件中获取_USA的名称。这是我尝试过的
#/bin/ksh
for city in "cat names.txt"
do
if ["$city" =~ "*_USA"]
then
echo "$city in USA" > USAnames.txt
fi
done
发布于 2014-01-06 01:20:08
使用awk
或sed
会更容易
如果您希望输出是这样的
New York_USA in USA
Austin_USA in USA
Chicago_USA in USA
使用
awk '/_USA$/ {print $0, "in USA"}' names.txt > USAnames.txt
或sed
sed -n 's/\(.*\)_USA$/\0 in USA/p' names.txt > USAnames.txt
或者如果您希望输出是
New York in USA
Austin in USA
Chicago in USA
使用
awk -F_ '/_USA$/ {print $1,"in USA"}' names.txt > USAnames.txt
或sed
sed -n 's/\(.*\)_USA$/\1 in USA/p' names.txt > USAnames.txt
编辑
您还可以使用perl打印美国城市。
#!/usr/bin/env perl
open(NAMES, "names.txt");
while (<NAMES>) {
chomp;
print "$_ in USA\n" if /_USA$/; # Chicago_USA in USA
# print "$1 in USA\n" if /(.*)_USA$/; # Chicago in USA
}
close(NAMES);
发布于 2014-01-06 01:50:49
只需使用grep:
grep '_USA$' your_file> new_file
https://stackoverflow.com/questions/20946332
复制相似问题