我file.txt
的内容是这样的:
fghfg
sdfsd
thrt
wefs
dfd
htyj
dfd
gsedf
1 sdfsdf
3 sdfghj
f fgdfhtyu
dfdsfsd
sdgdfg
sdfzcxzc
fgjty
我想改变这一部分:
1 sdfsdf
3 sdfghj
f fgdfhtyu
到这一个:(通过删除第一列和空格)
sdfsdf
sdfghj
fgdfhtyu
然后将file.txt
的整个输出重定向到file2.txt
。
怎么可能......?
由于
答案 0 :(得分:2)
尝试将脚本更改为:
find "$1" -print |
while IFS= read -r line; do
awk '!a[$0]++{print $NF}' "$line" > /tmp/file.txt
done
有什么需要改变吗?
答案 1 :(得分:2)
使用 sed ,你可以做这样的事情
sed 's/^ \+[^ ] \+//' file1.txt > file2.txt
它将删除包含空格序列的行开头的所有序列,后跟单个非空白字符而不是空格序列。使用问题中的文件,结果是:
fghfg
sdfsd
thrt
wefs
dfd
htyj
dfd
gsedf
sdfsdf
sdfghj
fgdfhtyu
dfdsfsd
sdgdfg
sdfzcxzc
fgjty
答案 2 :(得分:1)
这应该做:
awk '{print $NF}' file.txt > file2.txt
或当天最短的解决方案:
awk '{$0=$NF}1' file.txt > file2.txt
cat file2.txt
fghfg
sdfsd
thrt
wefs
dfd
htyj
dfd
gsedf
sdfsdf
sdfghj
fgdfhtyu
dfdsfsd
sdgdfg
sdfzcxzc
fgjty
只需打印最后一栏。
答案 3 :(得分:1)
另一个简单的sed
命令,
sed 's/.* \(.*\)/\1/g' file1.txt > file2.txt